Статическое связывание OpenCV на 64 бит - PullRequest
1 голос
/ 30 марта 2011

Я написал простое приложение в OpenCV и скомпилировал его с помощью следующей команды:

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

Что я пытаюсь сделать дальше, это следующее:

  • использовать статическое связывание, поэтому я могу запускать это приложение без необходимости устанавливать openCV на машину трагета

  • скомпилируйте приложение в независимую от процессора форму, чтобы я мог запускать это и на 32-разрядных, и на 64-разрядных компьютерах.

Как мне изменить команду компиляции, чтобы добиться следующего? Спасибо, krisy

1 Ответ

1 голос
/ 01 апреля 2011

Если вы хотите, чтобы он работал независимо на 32- и 64-битных системах, скомпилируйте в 32-битном режиме. Что касается статического связывания, теоретически, способ сделать это, когда вы строите с помощью cmake, на вкладке сборки снимите флажок BUILD_SHARED_LIBS. Проблема, с которой я столкнулся, заключается в том, что это, похоже, не работает, поэтому сейчас вы можете застрять в динамических ссылках. Чтобы переопределить установку в других системах, просто поместите DLL в тот же каталог, что и exe.

...