我在openCV中有项目,在eclipse(MinGW / Windows 8 os)下创建为Makefile应用程序。我需要创建一个可执行文件,以便在没有安装openCV的情况下在其他计算机上运行应用程序时不需要任何其他dll。
我还将openCV源编译为静态库。这就是我的Makefile(草稿)的样子:
all:
gcc -static -I"C:\opencv\build\include" -L"lib" main.c -lws2_32 -lopencv_core244.dll -lopencv_highgui244.dll -lopencv_imgproc244.dll -o bcast.exe
构建exec后不包含libs。我做错了什么?
提前致谢。
答案 0 :(得分:1)
您需要关联*.lib
个文件,而不是*.dll
( 动态 -Link库)。
所以,应该是:
g++ -I"C:\opencv\build\include" -L"lib" main.c -lws2_32 -lopencv_core244.lib -lopencv_highgui244.lib -lopencv_imgproc244.lib -o bcast.exe
(你应该考虑使用g ++,它是一个c ++库。)之后你的makefile会生成1 .exe
个文件,没有libs。
老实说,你真的静态地重新编译了opencv libs(用-DBUILD_SHARED_LIBS=OFF
)吗?我在这里有疑虑。