我試圖用visual studio 2005構建一個C/C++靜態庫。由於運行時庫的選擇是一個編譯選項,我不得不構建我的庫的四個變體,每個變體的運行時庫:爲什麼運行時庫是編譯器選項而不是鏈接器選項?
- /MT - 靜態運行時庫
- /MD - DLL運行時庫
- /MTD - 靜態調試運行時庫
- /MDD - 調試DLL運行時庫
這些是編譯器選項,而不是鏈接器選項。來自Linux背景,這似乎很奇怪。不同的運行時庫有不同的調用約定或什麼?爲什麼不能在鏈接時解析不同的運行時庫,即當我鏈接使用靜態庫的應用程序時?
雖然似乎有很好的理由給出了答案 - 我同意你的看法。我總是最終在錯誤的地方尋找這個設置。與預編譯頭文件設置相同 - 它有自己的類別,而不是在預處理器部分。 – 2009-02-07 06:23:55