对于客户端,我尝试在 Visual Studio 2010 IDE 中重新创建基于命令行的构建工具。从项目中编译库,包括我已经确定的 C/C++ 源文件,链接命令行让我很伤心,因为只有当库的给出顺序与命令行工具完全相同时,可执行文件才能正确链接。
命令行是这样的:
link.exe -subsystem:console -machine:I386 -verbose:lib
-nodefaultlib:libc.lib -nodefaultlib:libcd.lib -nodefaultlib:libcmt.lib -nodefaultlib:libcmtd.lib
-DEBUG
-out:myout.exe
-pdb:myout.pdb
-libpath:../../path/to/libs
libcmtd.lib kernel32.lib user32.lib ws2_32.lib netapi32.lib comctl32.lib gdi32.lib comdlg32.lib advapi32.lib winmm.lib imagehlp.lib shell32.lib
x_mylib.lib a_mylib.lib y_mylib3.lib z_my.lib etc....
如果 IDE 编译的 .libs 与此命令行链接,则 .exe 是正确的,但是我无法让 IDE 精确链接到这个 .lib 顺序 - 它坚持按字母顺序对所有库进行排序和链接。
有什么想法吗? 避免陷入关于这一切意义的哲学辩论的诱惑,我无法更改基于命令行的构建工具