[英]Visual C++ - the client of a library is unaware that the library has changed using pragma comment lib
我正在使用的代碼庫使用雜注注釋庫將代碼的依賴關系表達為其所需的庫。 它的構建非常糟糕。 我做了一個實驗,試圖了解編譯注釋lib的用法。 它是我可以生成的最簡單的庫和該庫的客戶端。
Foo.lib
foo.cpp
void foo() { printf("hello\n"); }
foo.h :
#pragma comment(lib, "foo.lib")
void foo();
FooTest.exe
main.cpp :
#include "foo.h"
void main()
{
foo();
}
我正在使用Visual Studio 2005(為了與僅接受使用此版本制作的插件的大型商業程序兼容)。 問題是更新foo.lib時,FooTest.exe無法重新編譯。 我對foo.cpp進行了更改,然后保存,構建。 然后構建fooTest.exe解決方案。 fooTest.exe解決方案似乎無法理解其依賴性已更改。
我可以通過將鏈接程序依賴項添加到FooTest.exe來解決此問題,但這使編譯指示注釋lib失去了意義。
我已經閱讀了許多有關實用注解lib的帖子,並認為它對很多人都有效。 在我的整體代碼庫和測試中,它不起作用。 我肯定錯過了什么。
斯科特
comment lib
pragma插入鏈接程序指令。 鏈接器會看到此情況,並將該庫添加到其輸入列表中。 這就是全部。 您想要的是項目依賴項,您似乎知道如何配置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.