编译.exe程序时生成.lib

时间:2017-01-09 12:53:43

标签: c++ visual-studio-2012 linker executable

过去几天我一直想弄清楚这个,我在网上找不到任何相关内容。

我有一系列使用Visual Studio 2012生成.exe文件的项目(行为也发生在新版本下)。我使用Property Sheets来设置所有编译选项;因此,我所有的CL&链接开关在我的.exe项目中保持一致。我已经确认没有任何交换机在问题项目中被本地覆盖。

所以我遇到的问题是我的41个项目中有2个生成.lib& .exp文件和所需的.exe文件一样好。我以前从未见过这个,我不太明白为什么 .exe需要那些。就好像链接器暂时将Projects视为.dll,但最终生成.exe。

在某些情况下,有人会知道这是否是预期的行为?

感谢您的帮助。

我找到了这个链接,它几乎完全描述了我得到的内容。但该解决方案似乎并不适用于我的情况。

Why does my Visual C++ .exe project build create .lib and .exp files?

1 个答案:

答案 0 :(得分:2)

好吧......经过多次挖掘,我终于找到了问题。

这个问题确实与我提供的链接中提到的问题有关。某处,在旧的Sun Microsystem库(相关的portmap)下,有一个函数,其中包含__declspec(dllexport)语句。即使该库由所有我的.exe项目使用,但只有2个问题程序间接调用导出的函数。

回想一下......我应该直接查看.lib文件。它显示了导出的单个函数。