我有一種情況,其他開發人員在我維護的項目中包含來自項目的源文件。這些文件的性質使得每個源文件在解釋環境中註冊一個「命令」,所以你所要做的就是鏈接一個新的源文件來註冊一個新的「命令」。我們不能將這些文件放在靜態庫中,因爲除非項目明確引用文件中的符號,否則鏈接器將優化文件。是否有可能從另一個文件中創建vs2008 C++項目導入源文件名?
看起來像一個可能的解決方案是在兩個項目中都有一個文件外部的「包含」兩個項目中的源文件名列表。問題是我不知道是否或如何做到這一點。建議,任何人?
我有一種情況,其他開發人員在我維護的項目中包含來自項目的源文件。這些文件的性質使得每個源文件在解釋環境中註冊一個「命令」,所以你所要做的就是鏈接一個新的源文件來註冊一個新的「命令」。我們不能將這些文件放在靜態庫中,因爲除非項目明確引用文件中的符號,否則鏈接器將優化文件。是否有可能從另一個文件中創建vs2008 C++項目導入源文件名?
看起來像一個可能的解決方案是在兩個項目中都有一個文件外部的「包含」兩個項目中的源文件名列表。問題是我不知道是否或如何做到這一點。建議,任何人?
沒有理由源文件不能在多個項目中。只需將其添加爲VS中的「現有項目」即可。
如果您使用的是預編譯頭文件,那麼兩個項目都需要相應的設置才能使其工作。
您還可以在鏈接器放棄鏈接器時使用lib中的#pragma強制包含符號。
#pragma comment(linker, "/include:__mySymbol")
見#pragma comment的MSDN文檔和include選項
你可以簡單地寫一個只包含#include
指令的源文件嗎?不過,我不確定如果VS檢查依賴文件是否已經更改,如果它們不在項目中。
我曾經考慮過這一點,但也有如果包括在相同的「編譯單元」,可以發生碰撞的靜態符號(匿名的命名空間)。 – 2008-10-31 23:08:47