1

我正在使用Visual Studio 2012,並且我想編譯我的圖形應用程序,它使用SFML框架,/MT編譯器標誌而不是Visual Studio默認/MD。這可以在項目設置中設置爲Configuration -> C/C++ -> Code Generation -> Runtime Library。所提到的標誌控制是否動態(/MD)或靜態(/MT)鏈接Windows運行時庫。因爲RuntimeLibrary值在SFML設置爲MD_DynamicRelease在Visual Studio中編譯具有/ MT標記的SFML

改變我自己的應用程序會導致鏈接錯誤的項目文件,只是這個設置,但它是在我的項目MT_StaticRelease。因此我需要用/ MT標誌編譯SFML。我使用CMake創建了Visual Studio項目文件,但在項目設置中,設置更少。關鍵是,甚至沒有一個類別Configuration -> C/C++

那麼我怎樣才能找到選項頁面或手動設置/MT標誌?

(順便說一下選項頁面的名稱可能不完全正確的,因爲我從Visual Studio的德語版我垂頭喪氣地使用翻譯它們。)

+1

SFML CMake腳本應該已經提供了一個靜態鏈接運行時庫的選項(SFML_USE_STATIC_STD_LIBS)。 –

+0

如果您沒有在解決方案資源管理器窗口中選擇項目,而是選擇源文件,則只會得到「較少的設置」。確保右鍵單擊*項目*並選擇屬性。/MD在SFML中被選爲btw。當你使用/ MT構建時,你應該建立一個靜態庫而不是DLL。儘管你可能會在VS2012中脫身。 –

+0

@HansPassant。有更少的設置可用,我打開了項目設置。無論如何,我感興趣的是SFML使用/ MD的好的理由是什麼。我希望我的應用程序被構建爲可執行文件。 – danijar

回答

1

CMake的提供SFML腳本拿出一個選項靜態鏈接運行時庫(SFML_USE_STATIC_STD_LIBS)。