2013-02-25 2 views
16

Ho alcuni makefile per creare determinate librerie per me. Ora ho bisogno di convertirli in un progetto VS per motivi di convenienza. Ho cercato solo su Google per trovare i modi per convertire un progetto VS in un makefile con l'aiuto del wizard makefile fornito da VS. Inoltre, ho trovato che c'era questa funzionalità inclusa in VS6 per convertire il makefile nel progetto VS. Ma questa funzionalità è stata rimossa per le versioni successive. Inoltre, ho capito che i download di VS6 non sono più disponibili sul sito msdn.Convertire un makefile in un progetto VS

C'è un altro modo per convertire un makefile in un progetto di Visual Studio? o Posso prendere il VS6 da qualche parte?

+1

Ho affrontato lo stesso problema. Non ho trovato una soluzione allora. Ad ogni modo, ho avuto un'idea diversa: hai provato a scrivere un file cmake? Cmake dovrebbe essere in grado di creare un file VS Solution. Forse trovi un convertitore da make a cmake? – ChaosCakeCoder

risposta

8

L'unica opzione reale che hai qui è quella di eseguire manualmente la conversione (o utilizzare la Creazione guidata progetto Makefile). Dici di avere "un po 'di makefile", non so quanto sia, ma a meno che tu non stia parlando di> 10 o giù di lì, non è tanto per creare manualmente un progetto Visual Studio per questi. Dopotutto, tutto ciò che devi fare è creare un nuovo progetto DLL e aggiungervi i file sorgente. Il flag predefinito del compilatore/linker difficilmente ha bisogno di alcun tweaking. Oh sì, se li modificate, assicuratevi di fare queste modifiche in una finestra delle proprietà invece che nel progetto stesso: la finestra delle proprietà può essere riutilizzata da altri progetti, è una semplice questione del principio DRY.

Perché questa è l'unica opzione reale? Innanzitutto non esiste uno strumento in grado di convertire in modo affidabile qualsiasi makefile arbitrario in un progetto VS, perché i makefile possono essere in qualsiasi formato desiderato e molte delle loro funzionalità non hanno semplicemente controparti in un progetto VS. In secondo luogo, VS6 è a questa data di circa 15 anni, quindi anche se lo fai girare sulla tua macchina, l'output che produce è ancora antico e sicuramente non è quello che vuoi usare per i tuoi progetti.

1

questo articolo CodeProject: Automatically Translate makefile C/C++ Project for Visual Studio offre una soluzione rudimentale puntando per VS 2013 C/C++.

[PS: non è il mio articolo, ma riguarda almeno la parte principale della domanda VS6. ]

È una sceneggiatura semplicistica, e quindi irta di presupposti e opportunità di fallimento. È può, tuttavia, ti dà un punto di partenza che è praticabile, se il progetto si inserisce all'interno del suo dominio di intenti.

Sarà comunque necessario:

  • includono file che non sono, ovviamente, C/C++ file
  • regolare tutte le opzioni di progetto
  • regolare le opzioni del compilatore
  • aggiungere dipendenze temporali collegamento
  • ecc.

Nel caso in cui l'articolo g OES via ... è uno script VBS che:

  • analizza la directory per i file che hanno le estensioni appartenenti a noti gruppi VS
  • ricorre nella sottodirectory alla ricerca di più file.
  • crea i file .vcxproj e .vcxproj.filters
  • aggiunge i file trovati a .vcxproj e .vcxproj.file di filtri

Quindi, se avete progetti nidificati (probabile) è necessario modificare lo script funziona come nella sua fase ricorsione.

Buona fortuna.