我有一個Visual Studio項目。這很簡單,而且很有效。但是,我們正在將我們的代碼移植到64位。我有這個簡單的項目編譯,但它無法鏈接:如何確定項目在Visual Studio中鏈接特定庫的位置?
fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64'
這告訴我它試圖鏈接庫的版本錯誤。它應該鏈接64位庫,但它試圖鏈接32位庫。這顯然是錯誤的。
我的問題是,我不知道我的項目在哪裏決定鏈接該庫。我看了:
- 項目屬性,道具文件。儘管指定了lib路徑,但沒有指定lib名稱。
- 項目屬性 - >鏈接器 - >命令行。也沒有。
- 我已經通過頭文件尋找某種
#pragma comment(lib,)
,但我找不到任何用途。
我還能在哪裏看?有沒有辦法讓Visual Studio告訴我它是如何決定在不同的庫中鏈接的?
不確定它是否相關,但這是一個使用CppUnit的小型單元測試項目。它鏈接cppunit-vc100-MTd.lib
當它應該鏈接cppunit-vc100-x64-MTd.lib
/VERBOSE:lib顯示正在使用的庫的列表,這爲我提供了另一種確認鏈接錯誤庫的方法。但是這並不能幫助我找出它從哪裏得到的名單。我會嘗試/ VERBOSE(但這是很多輸出篩選)。 – Tim
@Tim現在我看到了違規的庫,我很確定它*是一個#pragma註釋,因此請打開該lib名稱的包含路徑中的所有.h/hpp/inl文件的全文搜索。我想你會找到它。 (手指交叉) – WhozCraig
我搜索了我的整個代碼庫,整個cppunit包含路徑,查找'pragma。* comment。* lib',但沒有運氣。 – Tim