[Solved] Cannot link libs statically
-
wrote on 8 Mar 2015, 19:28 last edited by liimyd 3 Aug 2015, 19:30
I rebuilt opencv, this time with BUILD_SHARED_LIBS = Off, which made .a files.
I read that .a files are the same as .lib files.
My .pro file now looks like this:INCLUDEPATH += C:\\Programs\\opencvMinGW5\\install\\include LIBS += -LC:\\Programs\\opencvMinGW5\\install\\x64\\mingw\\staticlib \ -lopencv_core300 \ -lopencv_highgui300 \ -lopencv_imgcodecs300 \ -lopencv_imgproc300 \ -lzlib \ -lIlmImf
I have a few compilation errors, and I wasn't able to google them, do you know what they mean?
g++ -static -static-libgcc -Wl,-s -Wl,-subsystem,windows -mthreads -o release\blood_visual.exe release/main.o release/mainwindow.o release/contours.o release/edge.o release/blood_visual_plugin_import.o release/moc_mainwindow.o release/moc_contours.o release/moc_edge.o -lmingw32 -LC:/Qt/Static/5.3/lib -lqtmain -LC:\Programs\opencvMinGW5\install\x64\mingw\staticlib -lopencv_core300 -lopencv_highgui300 -lopencv_imgcodecs300 -lopencv_imgproc300 -lzlib -lIlmImf -LC:/Qt/Static/5.3/plugins/accessible -lqtaccessiblewidgets -lQt5Widgets -LC:/Qt/Static/5.3/plugins/platforms -lqwindows -lwinspool -lshlwapi -lQt5PlatformSupport -LC:/Qt/Static/5.3/plugins/imageformats -lqdds -lqicns -lqico -lqjp2 -lqmng -lqtga -lqtiff -lqwbmp -lqwebp -lQt5Gui -lcomdlg32 -loleaut32 -limm32 -lwinmm -lglu32 -lopengl32 -lgdi32 -lQt5Core -lole32 -luuid -lws2_32 -ladvapi32 -lshell32 -luser32 -lkernel32
C:\Programs\opencvMinGW5\install\x64\mingw\staticlib\libopencv_highgui300.a(window_w32.cpp.obj):window_w32.cpp:(.text$ZL17icvCreateTrackbarPKcS0_PiiPFviEPFviPvES4+0x62f): undefined reference to `_imp__CreateToolbarEx@52'
C:\Programs\opencvMinGW5\install\x64\mingw\staticlib\libopencv_imgproc300.a(imgwarp.cpp.obj):imgwarp.cpp:(.text$cvLogPolar+0x68b): undefined reference to `cvCartToPolar'
C:\Programs\opencvMinGW5\install\x64\mingw\staticlib\libopencv_imgproc300.a(imgwarp.cpp.obj):imgwarp.cpp:(.text$cvLogPolar+0x6c9): undefined reference to `cvLog'
C:/Qt/Tools/mingw491_32/bin/../lib/gcc/i686-w64-mingw32/4.9.1/../../../../i686-w64-mingw32/bin/ld.exe: C:\Programs\opencvMinGW5\install\x64\mingw\staticlib\libopencv_imgproc300.a(imgwarp.cpp.obj): bad reloc address 0x6c9 in section `.text$cvLogPolar'
I think I might be missing some static libs or maybe the order I'm listing the libs is wrong.
-
There's something not clear, I see MinGW5 in your OpenCV path and Qt uses 4.9.1, which one did you use to build OpenCV ?
-
wrote on 9 Mar 2015, 05:26 last edited by liimyd 3 Sept 2015, 05:31
OpenCVMinGW5 is just the name of the folder for my Cmake files (my sad 5th attempt at building OpenCV). I used 4.9.1 to build. Sorry for the confusion.
-
wrote on 18 Mar 2015, 23:02 last edited by
Hi, I'm still looking for help with this; I was wondering if you had any suggestions. Thank you for your help so far though!