2012-07-30 43 views
1

可以使用Visual Studio 2010編譯libexif嗎?我一直在試圖這樣做,並且遇到了很多問題。我找不到任何有關以前是否有人成功完成此任務的信息。我知道我可以使用MinGW編譯庫,但是我處於需要使用Visual Studio編譯的情況,然後需要從Visual C++應用程序鏈接到它。這可能嗎?使用Visual Studio 2010將libexif編譯爲靜態庫 - 然後從Visual C++項目鏈接

+0

我知道這是一個老問題,但我也有同樣的問題。儘管仍然需要.h文件,並且libexif中的.h文件需要生成一個config.h文件,但可能更容易找到DLL(如GIMP的libexif.dll)並使用dumpbin創建.lib文件。 – ALM865 2015-06-09 07:00:28

回答

0

閱讀「readme-win32.txt」文件。建議是:

以某種方式破解自己的構建系統。
這似乎是Windows做事的方式。

不要期待你的希望。 * nix做事的方式是需要首先運行的配置腳本。它會自動生成源文件以將庫結合到* nix的特定風格。配置腳本差不多有半個兆字節。三倍於實際.c文件中的代碼:)如果沒有MinGW,您無法合理地使其工作,因此您可以執行該腳本。一旦你完成了,VS VS解決方案可以更好地實現。只要它不使用太多的C99特定語法。

1

要回答你的問題:是的這是可能的...但它有點破解。 Libexif使用MSVC選擇不執行的函數。見我的工作例如VS2010以下項目(如果你不喜歡下載文件,然後跳到我的什麼需要改變,以得到它的解釋如下工作):

https://www.dropbox.com/s/l6wowl8pouux01a/libexif-0.6.21_CompiledInVS2010%2BExample.7z?dl=0

要闡述的問題是需要「黑客」(作爲LibExif自述-win32.txt文檔中暗示)有:

  • Libexif使用直列在其未在VS定義C,是僅含有C幾個地方++(見this

  • Libexif使用的snprintf廣泛未在VS中定義的代碼(見here

  • 你需要自己創建config.h中沒有的./configure命令來幫助你。您可以通讀該腳本,但其中大部分對於Windows VS2010來說都沒有意義。

  • 您將需要定義GETTEXT_PACKAGE,因爲它可能是在配置文件中設置的。我只是選擇UTF-8,不管這是否正確,我都不確定。

  • 有一個隨機未簽名的靜態*這需要從.c文件在VS .h文件爲C移動不允許你在他們的特殊方式創建內部功能的新變量試圖去做。

相關問題