使用内置静态库创建一个exe文件

时间:2014-03-15 15:21:27

标签: c eclipse opencv makefile

我在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。我做错了什么?

提前致谢。

1 个答案:

答案 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)吗?我在这里有疑虑。