作爲一個長期的POSIX/Linux/BSD C開發人員,現在正在試圖用Visual C++ 2010做一些事情,我對這個工具感到困惑,因爲它與GCC工具集的工作方式不太一樣確實。理論上,至少根據文檔,它看起來非常相似(我確信它是這樣),但我沒有看到我期望看到的東西。Windows C運行時庫不像我所期望的那樣鏈接?
在這種情況下,我正在嘗試構建一個C庫,以便稍後在.NET項目中使用,並且我希望稍後避免運行時衝突。我的想法是建立一個靜態庫,鏈接到C運行庫的DLL版本(Debug配置中的msvcr100d.dll),因此我設置了/MDd
標誌。但是,當我使用dumpbin.exe
檢查生成的.lib輸出時,它不顯示依賴項或導入。
兩個問題,真正做到:
- 這是擺在首位一個壞主意?我應該建立一個DLL還是連接靜態CRT?
- 爲什麼
dumpbin.exe
在使用/MDd
時不顯示對CRT的依賴?
更新:Choosing the Correct C/C++ Runtime Library是相當有幫助和信息。我嘗試了他建議的dumpbin
咒語,輸出結果顯示該鏈接與預期的msvcrtd
鏈接,但這並不能真正回答我上面的第二個問題。
哇。我仍然在谷歌搜索這個問題,並且這個問題已經在涉及「dumpbin」和「dependents」的搜索中排名第四。他們必須不斷抓取該網站。 – 2012-03-30 17:43:55
除非您使用C++/CLI,否則應該感覺幾乎完全相同。用那個說...代碼...請!如果/當您將問題更新到可解決特定問題的地步時,我會發布問題答案。 – 2012-03-30 17:44:21
@Ramhound:恩......代碼與這個問題無關。這是一個工具問題。我已經提出了具體的問題。如果你不能解決它們,這不是因爲我沒有解釋手頭的問題。 – 2012-03-30 17:46:47