Как сделать make.bat для этого проекта C++ Windows?

У меня сильная аллергия на использование Visual Studio/C++ IDE.

Вместо этого я хотел бы иметь возможность кодировать в своем обычном текстовом редакторе (например, Sublime Text) и создавать проект с файлом make.bat.

Вот пример пакета (mdaDX10 — аудио VSTi, доступный с открытым исходным кодом), а вот make.bat файл, который я сделал:

call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
cl mdaDX10.cpp

К сожалению, это не работает: он пытается построить .exe, тогда как вывод должен быть .dll (аудио плагины VST — это библиотеки DLL).

Как сделать чистую IDE-независимую make.bat для такого проекта?


Вот часть ошибки:

[...]
/out:mdaDX10.exe
mdaDX10.obj
mdaDX10.obj : error LNK2019: unresolved external symbol "public: virtual void __
thiscall AudioEffectX::isSynth(bool)" (?isSynth@AudioEffectX@@UAEX_N@Z) referenc
ed in function "public: __thiscall mdaDX10::mdaDX10(int (__cdecl*)(struct AEffec
t *,int,int,int,void *,float))" (??0mdaDX10@@QAE@P6AHPAUAEffect@@HHHPAXM@Z@Z)
mdaDX10.obj : error LNK2019: unresolved external symbol "public: virtual void __
thiscall AudioEffect::canProcessReplacing(bool)" (?canProcessReplacing@AudioEffe
ct@@UAEX_N@Z) referenced in function "public: __thiscall mdaDX10::mdaDX10(int (_
_cdecl*)(struct AEffect *,int,int,int,void *,float))" (??0mdaDX10@@QAE@P6AHPAUAE
ffect@@HHHPAXM@Z@Z)
[...]

person Basj    schedule 04.07.2015    source источник


Ответы (1)


Вызов

cl /? 

даст вам список вариантов. /LD - это флаг для создания dll

Параметры cl также задокументированы в Интернете https://msdn.microsoft.com/en-us/library/fwkeyyhe.aspx

Однако я бы рекомендовал отказаться от самостоятельного создания этих файлов и перейти к более общему и мощному решению, например cmake, иначе вы обнаружите, что ваши сценарии быстро становятся менее чистыми и их сложнее поддерживать в соответствии с вашими потребностями.

person Andrew Murray    schedule 04.07.2015