我試圖添加PNG支持到我的應用程序,因此我想包括libpng。我知道它需要zlib,因此我也下載了它。我進入了png文件夾/ projects/vstudio,然後我打開了解決方案。我編譯它,它很好。我添加了一些頭文件到我的應用程序中,並複製了lib文件。我的程序是一個用C++編寫的dll,後來在C#中使用。當我用C#運行它時,它抱怨沒有找到我的dll(如果我刪除了png部分,它很好用)。我以前遇到過這個問題,通常意味着dll依賴項是錯誤的。
現在... libpng編譯了一些.lib文件和一些.dll文件。該dll文件更大。我唯一的猜測是,它需要DLL文件,但我已經看到,人們可以鏈接到libpng沒有DLL。
所以我的問題是:我如何編譯libpng(和zlib的那個實例)到靜態庫中,我怎樣才能將這些包含在我的項目中?我在互聯網上搜索過,找不到任何有用的東西。與Visual Studio 2010靜態libpng鏈接
2
A
回答
3
爲了使所有的庫都是靜態的,你必須重新編譯一切「從零開始」作爲靜態庫。
這只是意味着你應該建立在你的序列你有每個庫的一組項目,輸出類型設置爲靜態庫。
之後,您應該消除庫本身之間的庫依賴關係(這意味着您應該將某些項目的輸出鏈接到另一個項目,例如如果您的「libpng」庫使用「libzip」,這意味着您應該先編譯「libzip」和鏈接輸出(靜態庫)到你的「的libpng」項目。
在快結束的時候,你將有一個大集編譯平臺,你可以在你的項目中使用靜態庫的。
另外要提一下,請仔細閱讀Google搜索。我確定有人有這樣做,你可能需要爲你的平臺下載一個.lib文件包(我知道「dev」庫包只包含一個導入庫與適當的.dll配對文件,但有很多像你這樣的愛好者:)
相關問題
- 1. 鏈接到靜態庫在Visual Studio 2010
- 2. Visual Studio 2010和QT 4.7.1靜態鏈接
- 3. Visual Studio 2010中的動態和靜態鏈接和部署
- 4. 問題在Visual Studio靜態鏈接庫中的hunspell 2010
- 5. 如何在Visual Studio 2010中構建靜態鏈接的程序?
- 6. C++ Visual Studio 2010未鏈接本機靜態庫
- 7. 在Visual Studio中靜態鏈接庫
- 8. 在Visual Studio中靜態鏈接ffmpeg庫
- 9. 將OpenCV 2.4.2與Visual Studio 2010鏈接
- 10. Visual Studio 2010 - 鏈接MySQL
- 11. 鏈接libpng與g ++
- 12. 與libpng&zlib鏈接?
- 13. CMake Visual Studio鏈接可執行文件與靜態庫
- 14. 靜態DataGrid列寬度在Visual Studio 2010
- 15. 靜態對象與Visual Studio
- 16. Visual Studio 2010 Qt鏈接問題
- 17. 在Visual Studio 2010中鏈接DLL C++
- 18. Visual Studio 2010庫鏈接順序
- 19. Visual Studio 2010 Assimp庫將不會鏈接
- 20. Visual Studio C++ 2010鏈接錯誤
- 21. Visual Studio 2010不鏈接CSS文件
- 22. Visual Studio 2010的CUDA 4.0鏈接錯誤
- 23. Visual Studio 2010使用VTK鏈接錯誤
- 24. 在Visual Studio 2010中鏈接庫
- 25. SqlServerUnitTest與Visual Studio 2010
- 26. Mongoose靜態鏈接與libssl?
- 27. Visual Studio 2008 IDE - 靜態鏈接一個C Dll庫
- 28. Visual Studio 2013 C++鏈接靜態庫glew,虛擬機上的glfw
- 29. Visual Studio靜態鏈接爲獨立的exe
- 30. cuda 5.0與Visual Studio 2010中的示例.h鏈接
真正重新編譯這個東西並不難 - 創建一個項目,添加所有文件。沒有更多的問題與不同的運行時版本或類似的東西。 – sharptooth 2010-06-02 10:59:54
那麼,嘗試通過「創建項目和添加文件」來完全構建'gtkmm';)*有時候所有這些內部依賴關係都可能成爲真正的屁股疼痛* – 2010-06-02 11:05:16
也許,但是我們毫無麻煩地構建zlib和SQLite。 – sharptooth 2010-06-02 12:41:04