在库上运行link.exe

时间:2014-09-02 14:50:00

标签: visual-c++ linker

以下是我在库上运行link.exe以创建可执行文件的情况;但是可执行文件不起作用。

file1.cpp is compiled to file1.obj;
file2.cpp is compiled to file2.obj;
file3.cpp is compiled to file3.obj which includes the function of main;

file1.obj is lib-ed into file1.lib;
file2.obj is lib-ed into file2.lib;
file3.obj is lib-ed into file3.lib;

以下是用于将file1.lib,file2.lib和file3.lib链接到test.exe的命令行:

"link.exe file3.lib file2.lib file1.lib /nologo /OUT:test.exe /ENTRY:mainCRTStartup /SUBSYSTEM:CONSOLE libcmt.lib"

当我运行./test.exe时,它返回1表示它在某处崩溃; 当我运行以下命令行时:

"link.exe file3.obj file2.lib file1.lib /nologo /OUT:test.exe /ENTRY:mainCRTStartup /SUBSYSTEM:CONSOLE libcmt.lib"

一切都很好./test.exe运行良好。

我可以请你帮忙告诉我内部上述两条推荐线的区别吗? 谢谢。 戴蒙

1 个答案:

答案 0 :(得分:0)

您可能正在运行不同的代码,因为未使用.obj模块。

检查您的地图文件。仅当至少在外部解析时,才会复制库中的.obj模块。在命令行中指定的.obj文件始终是链接的。