如何为这个 C++ Windows 项目制作“make.bat”?

Posted

技术标签:

【中文标题】如何为这个 C++ Windows 项目制作“make.bat”?【英文标题】:How to make a "make.bat" for this C++ Windows project? 【发布时间】:2015-07-04 12:48:07 【问题描述】:

我对使用 Visual Studio / C++ IDE 高度过敏。

相反,我希望能够使用我常用的文本编辑器(例如Sublime Text)进行编码,并使用make.bat 文件构建项目。

Here is an example package(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)
[...]

【问题讨论】:

【参考方案1】:

打电话

cl /? 

会给你一个选项列表。 /LD 是创建 dll 的标志

cl 的选项也记录在网上https://msdn.microsoft.com/en-us/library/fwkeyyhe.aspx

但是,我建议您不要自己创建这些文件,而转向更通用、更强大的解决方案,例如 cmake,否则您可能会发现您的脚本很快变得不那么干净并且难以维护以满足您的需求。

【讨论】:

以上是关于如何为这个 C++ Windows 项目制作“make.bat”?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 Python 制作 C++ 库

如何为 pyqt 项目创建 Windows 安装程序

如何为 C++、protobuf 制作 swig 接口文件

如何为我的 GIF tilesheet 制作动画(OpenGL、DevIL、C++)

如何为现有的非 android Eclipse 项目制作 android manifest?

XML/android:如何为 RecyclerView 项目制作白色下划线? [复制]