我有一個在多個平臺上編譯的項目... Windows,Unix,Linux,SCO,命名你的風格。在C++編譯時檢索輸出目標名稱字符串
我想將輸出目標的名稱填充到項目源代碼(輸出程序的名稱,DLL,SO庫或其他)中的變量中,以便我可以在消息中將它用作通用方法來引用組件名稱是它在Windows上的一個EXE,一個DLL,在Unix上的一個SO庫等。
我在想的是一個像功能 _預處理器鍵,但拉東西的EXE/DLL在Visual C++中的Windows上,然後是GCC中的SO輸出庫。當然,這些可能會是兩種不同的機制,但我想將兩者合併爲一個選項,我可以在我的多平臺代碼中使用這些選項。
因此,一個宏觀的東西或者我可以調用的東西,至少在編譯過程中選擇Windows輸出文件名(Visual C++),所以我可以將它推入代碼中的一個常量字符串中,並且可能是一種方法在GCC中也是這樣,所以這兩個平臺可以被包裝成一個抽象。最好不要在運行時拾取,但在編譯期間捕獲並保留。
如果輸出是一個庫,那麼它的lib文件名。如果它是一個組件,那麼輸出組件文件名。
我希望Boost或Poco必須有這樣的東西,可能已經有一些不受支持的端點,這很好。
謝謝,我忘記了語法! – psycho 2012-03-08 10:44:00