Bonjour,
je suis actuellement entrain de construire une librairie en c qui est incluse dans plusieurs petit programme en C++.
Tout compile parfaitement cependant je n'arrive pas a linker mon programme:
Voici un extrait du make file (Generer avec CMake)
Generation de cv7core.dll
La librarie est donc parfaitement generer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Building C object src/cv7core/CMakeFiles/cv7core.dir/camparams.c.obj cd D:\projects\CvS400\ec_mingw\src\cv7core && C:\MinGW\bin\gcc.exe -Dcv7core_EXPORTS -g -IC:\ARCHIV~1\OpenCV\cv\include -IC:\ARCHIV~1\OpenCV\cvaux\include -IC:\ARCHIV~1\OpenCV\cxcore\include -IC:\ARCHIV~1\OpenCV\OTHERL~1\highgui -ID:\projects\CvS400\trunk\include\cv7core -o CMakeFiles\cv7core.dir\camparams.c.obj -c D:\projects\CvS400\trunk\src\cv7core\camparams.c "C:\Archivos de programa\CMake 2.6\bin\cmake.exe" -E cmake_progress_report D:\projects\CvS400\ec_mingw\CMakeFiles 9 ... Linking C shared library ..\..\bin\libcv7core.dll cd D:\projects\CvS400\ec_mingw\src\cv7core && "C:\Archivos de programa\CMake 2.6\bin\cmake.exe" -E cmake_link_script CMakeFiles\cv7core.dir\link.txt --verbose=1 C:\MinGW\bin\gcc.exe -shared -o ..\..\bin\libcv7core.dll -Wl,--out-implib,..\..\bin\libcv7core.dll.a -Wl,--major-image-version,1,--minor-image-version,0 CMakeFiles\cv7core.dir\camparams.c.obj CMakeFiles\cv7core.dir\cvtools.c.obj "C:\Archivos de programa\OpenCV\lib\cv.lib" "C:\Archivos de programa\OpenCV\lib\cvaux.lib" "C:\Archivos de programa\OpenCV\lib\cxcore.lib" "C:\Archivos de programa\OpenCV\lib\highgui.lib" "C:\Archivos de programa\OpenCV\lib\cv.lib" "C:\Archivos de programa\OpenCV\lib\cvaux.lib" "C:\Archivos de programa\OpenCV\lib\cxcore.lib" "C:\Archivos de programa\OpenCV\lib\highgui.lib" Creating library file: ..\..\bin\libcv7core.dll.a mingw32-make[3]: Leaving directory `D:/projects/CvS400/ec_mingw' "C:\Archivos de programa\CMake 2.6\bin\cmake.exe" -E cmake_progress_report D:\projects\CvS400\ec_mingw\CMakeFiles 2 3 4 5 6 7 8 9 10 [100%] Built target cv7core mingw32-make[2]: Leaving directory `D:/projects/CvS400/ec_mingw' "C:\Archivos de programa\CMake 2.6\bin\cmake.exe" -E cmake_progress_start D:\projects\CvS400\ec_mingw\CMakeFiles 0 mingw32-make[1]: Leaving directory `D:/projects/CvS400/ec_mingw'
puis apres je compile mon main.cpp
Et finalement il y a la liaison qui ne marche pas:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 [100%] Building CXX object src/CMakeFiles/BgS400.dir/main.cpp.obj cd D:\projects\CvS400\ec_mingw\src && C:\MinGW\bin\g++.exe -g -IC:\ARCHIV~1\OpenCV\cv\include -IC:\ARCHIV~1\OpenCV\cvaux\include -IC:\ARCHIV~1\OpenCV\cxcore\include -IC:\ARCHIV~1\OpenCV\OTHERL~1\highgui -ID:\projects\CvS400\trunk\include\cv7core -ID:\projects\CvS400\trunk\include\cv7io -ID:\projects\CvS400\trunk\include -o CMakeFiles\BgS400.dir\main.cpp.obj -c D:\projects\CvS400\trunk\src\main.cpp
Voila, et la j'ai vraiment du mal a voir ou est mon erreur... c'est possible que cela soit tout bete mais j'ai l'impression que je n'oublie rien au moment du linking (il y a bien ..\bin\libcv7core.dll.a).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Linking CXX executable ..\bin\BgS400.exe cd D:\projects\CvS400\ec_mingw\src && "C:\Archivos de programa\CMake 2.6\bin\cmake.exe" -E cmake_link_script CMakeFiles\BgS400.dir\link.txt --verbose=1 C:\MinGW\bin\g++.exe -g CMakeFiles\BgS400.dir\main.cpp.obj -o ..\bin\BgS400.exe -Wl,--out-implib,..\bin\libBgS400.dll.a -Wl,--major-image-version,0,--minor-image-version,0 "C:\Archivos de programa\OpenCV\lib\cv.lib" "C:\Archivos de programa\OpenCV\lib\cvaux.lib" "C:\Archivos de programa\OpenCV\lib\cxcore.lib" "C:\Archivos de programa\OpenCV\lib\highgui.lib" ..\bin\libcv7core.dll.a "C:\Archivos de programa\OpenCV\lib\cv.lib" "C:\Archivos de programa\OpenCV\lib\cvaux.lib" "C:\Archivos de programa\OpenCV\lib\cxcore.lib" "C:\Archivos de programa\OpenCV\lib\highgui.lib" CMakeFiles\BgS400.dir\main.cpp.obj: In function `main': D:/projects/CvS400/trunk/src/main.cpp:11: undefined reference to `CamParams_InitMem()' D:/projects/CvS400/trunk/src/main.cpp:53: undefined reference to `CamParams_ReadXML(CvFileStorage const*, CvFileNode const*, CamParams*)' D:/projects/CvS400/trunk/src/main.cpp:54: undefined reference to `CamParams_Print(CamParams*)' collect2: ld returned 1 exit status
Si qqun a une idée.
Partager