2013-02-22 83 views
0

我有32位和64位運行時庫安裝在不同的位置。庫文件被命名相同。現在要創建一個32位應用程序,我需要爲64位指定32位庫路徑和類似的東西。有沒有辦法做這樣的事情包括在C++ visual studio 2010中使用#ifdef的additinal庫路徑

#ifdef defined (_WIN64) 
    include 64bit library path 
    #else 
    include 32bit library path 
    #endif 

現在「定義(_WIN64)的#ifdef」爲windows平臺(我有經驗經檢查發現)。從我的簡單調查中,我瞭解到,這可能不是確定目標應用程序是64位還是32位的最佳方式,但問題不在此處。我想知道是否有辦法讓類似的條件語句恰當地包含庫路徑。我提前用C++ Visual Studio 2010中由於在開發Windows

+1

建議,包括在_lib_的名稱_bitness_。這允許庫文件位於相同的目錄中,並且可以從其目錄中移出並仍保留該信息。 – hmjd 2013-02-22 15:04:14

+0

我無法更改庫名稱。這些庫是第三方庫,它們駐留在具有相同名稱的兩個不同目錄中。我正在創建的圖書館附加了一些位圖。 – user1612986 2013-02-22 15:26:30

回答

0

我會與評論更改庫名稱認同,但要回答這樣的問題:使用#pragma comment指定​​:

#pragma comment(linker, "/LIBPATH:c:\\test\\") 

注如果你改變了庫名稱,你可以這樣做,而不是:

#ifdef _WIN64 
#pragma comment(lib, "mylib64.lib") 
#else 
#pragma comment(lib, "mylib32.lib") 
#endif 
+0

庫路徑有一些空間。有辦法處理它嗎?庫路徑如下所示:c:\ Program Files \。我如何處理這個空間? – user1612986 2013-02-22 15:47:56

+0

我會建議您使用相對路徑並將庫複製到某處不需要空間的地方。如果不可行,請在其周圍加引號或使用MSDOS 8.3短名稱。 – 2013-02-22 16:08:29