C++ 静态库的cpp中的pragma是否由该库使用';s用户?
经过一些测试后,我觉得即使将它们放在cpp中,库用户也会使用它们,但我不确定我是否做错了什么 在Visual Studio中,我有一个静态库StaticLib.lib和StaticLib.cpp。在该文件中,我有以下代码:C++ 静态库的cpp中的pragma是否由该库使用';s用户?,c++,visual-studio,C++,Visual Studio,经过一些测试后,我觉得即使将它们放在cpp中,库用户也会使用它们,但我不确定我是否做错了什么 在Visual Studio中,我有一个静态库StaticLib.lib和StaticLib.cpp。在该文件中,我有以下代码: #pragma comment(lib, "random.lib") 在编译StaticLib.lib时,我没有收到任何错误消息,说明找不到random.lib,但在使用MyProgram.exe链接StaticLib.lib时,我得到 LNK1104
#pragma comment(lib, "random.lib")
在编译StaticLib.lib时,我没有收到任何错误消息,说明找不到random.lib,但在使用MyProgram.exe链接StaticLib.lib时,我得到
LNK1104 cannot open file 'random.lib'
在Visual Studio 2019中
这是正常的行为吗?最初我认为您需要将pragma放在一个头中,并让您的用户(MyProgram.exe)包含该头,以便强制链接到特定的库('random.lib')。严格来说,
#pragma
由编译器在编译StaticLib.cpp
文件时进行处理
根据,其结果是:
解放党
在对象文件中放置库搜索记录
链接器在构建MyProgram.exe
时使用的,这是正常行为吗?我想是的。这些pragma由链接器解释,并且只有在链接.exe时才会运行。