我正在編譯一個項目的靜態庫,該項目包含用於實現的接口和.inl文件的.h文件,而Visual Studio 2008未爲我生成.lib文件,可能的原因是什麼?如何使用inl文件在Visual Studio 2008中創建靜態庫?
1
A
回答
1
如果你的庫是一個只有頭文件的庫(一切都是#included),那麼沒有什麼可以編譯的。編譯器只編譯源代碼(.cpp文件,.c等)。如果你的所有代碼都是模板,如果你的代碼沒有任何.cpp文件,那麼你不會生成任何源代碼。用戶只包含一些標題。
例如,Boost的大部分內容僅爲標題。你只需包含它;你不鏈接到任何它。換句話說,如果你所有的代碼都是內聯的,那麼它們都不是static。所以沒有靜態庫。
+0
+1這聽起來像沒有編譯代碼,所以沒有.lib文件 – Ralf
0
編譯器以與處理.h文件相同的方式處理.inl文件 - 它不會單獨編譯它們。您必須將它們包含在.cpp文件中才能編譯它們。
+0
工程,但導致這個奇怪的警告: 「警告LNK4221:找不到公共符號;檔案成員將無法訪問「 –
相關問題
- 1. 創建靜態庫Visual Studio
- 2. 如何在C程序(Visual Studio 2008)中使用靜態pthread庫?
- 3. 從Visual Studio 2008中使用靜態庫與Visual Studio 2010
- 4. 使用Visual Studio 2008創建數據庫
- 5. 如何在Visual Studio 2008中創建編譯的用戶文件?
- 6. 如何使用Visual Studio 2008創建靜默安裝程序包
- 7. 從多個.h/.cpp文件(Visual Studio 2005)創建靜態庫?
- 8. 在Visual Studio中創建靜態/動態C++庫的問題
- 9. 如何在Visual Studio 2008中使用.a庫文件?
- 10. 如何在Visual Studio 2008中創建相關文件?
- 11. Visual Studio 2008中創建
- 12. 在Visual Studio中使用Visual C++創建動態鏈接庫
- 13. 如何打開rdl在Visual Studio 2008中使用Visual Studio 2005創建?
- 14. 如何打開rdl在Visual Studio 2012中使用Visual Studio 2008創建?
- 15. 在Visual Studio中構建DLL時使用靜態庫
- 16. 如何在Visual Studio中使用OpenCV 2.4靜態庫?
- 17. 使用Visual Studio 2008創建MSI - 如何創建子目錄?
- 18. 如何從多個靜態庫中創建一個靜態庫?
- 19. 如何在C#中使用Visual Studio創建文本文件?
- 20. 在Visual Studio 2008中使用Visual Basic創建Web聊天工具
- 21. 如何在Visual Studio 2008中創建Windows Media Player插件
- 22. 如何在Visual Studio(2008)中創建異步生成事件?
- 23. Visual Studio:靜態鏈接到靜態庫
- 24. 引用其他靜態庫中的靜態庫(Visual Studio 2010)
- 25. 在Visual Studio 2008中創建安裝包
- 26. 在Visual Studio中的靜態庫vs DLL
- 27. 在Visual Studio中靜態鏈接庫
- 28. 在Visual Studio 2013中編譯靜態庫
- 29. 在Visual Studio中靜態鏈接ffmpeg庫
- 30. 在C++ visual studio中鏈接靜態庫
「inl文件」是什麼意思? –
@Nicol Bolas:那些擴展名爲.inl的文件用於內聯定義。 – sharptooth