2011-03-30 131 views
1

我已經寫在OpenCV的一個簡單的應用程序,並使用以下命令編譯它:OpenCV的64位靜態鏈接

g++ -I ./include/opencv -Wall -o imageHash imageHash.h imageHash.cpp -lcv -lhighgui 

我試圖接下來要做的,是這樣的:

  • 使用靜態鏈接,所以可以在不追求的目標機器

  • 上安裝OpenCV編譯該應用一個CPU獨立形式的需要運行該應用程序,所以可在32位和64b中運行該它也是機器。

如何修改編譯命令以實現以下目標? 謝謝, krisy

回答

1

如果您希望它在32位和64位系統上獨立運行,請在32位模式下編譯。至於靜態鏈接,理論上這樣做的方法是當你用cmake構建時,在構建選項卡下取消選中BUILD_SHARED_LIBS。我面臨的問題是,這似乎不起作用,所以現在你可能會被卡在動態鏈接中。要覆蓋其他系統上的安裝,只需將DLL放在與exe相同的目錄中即可。

+0

只有32位版本可能無法在Linux上使用,就像在Windows上一樣。 – 2012-11-28 14:50:35