CMake openNURBS - lier lib*.a avec CMake
Bonjour,
Je cherche à compiler mon projet à travers CMake, avec la librairie openNURBS.
Avec certaines configuration de mon CMakeLists.txt, j'arrive à compiler, mais à l'exécution j'obtiens une erreur
symbol lookup error: PATH/lib/libmyModeler.so: undefined symbol: _ZN13ON_NurbsCurveC1Ev
Je suis sûre que le problème provient de ma façon d'inclure openNURBS (--> la librairie libopenNURBS.a) dans le CMakeLists.txt, car d'autres projets ont déjà compilé correctement avec openNURBS, mais je n'arrive pas à copier leur fonctionnement...
Voici l’arborescence de mon projet :
myProject
CMakeLists.txt
src/
CMakeLists.txt
*.cpp *.h
include/
opennurbs/
CMakeLists.txt
Makefile
libopenNURBS.a
*.cpp *.h
build/
dossier de compilation
J'ai compilé openNURBS, ce qui a créé libopenNURBS.a et des .o dans le dossier include/opennurbs/
Dans mon CMakeLists.txt principal, celui à la racine du projet (myProject/CMakeLists.txt), j'ai les lignes suivantes pour openNURBS :
Code:
1 2 3 4 5 6
| cmake_minimum_required (VERSION 2.6)
PROJECT (myProject)
...
include_directories (${PROJECT_SOURCE_DIR}/include/opennurbs)
add_subdirectory (${PROJECT_SOURCE_DIR}/include/opennurbs)
SET_TARGET_PROPERTIES(opennurbs PROPERTIES LINKER_LANGUAGE CXX) |
Pour compiler, je lance les commandes suivantes depuis le dossier build
Code:
1 2 3
| ccmake ../
cmake ../
make |
Dans la configuration de ccmake, j'indique l'option de compilation -fPIC
Au début de la compilation, il m'affiche
Code:
1 2 3 4
| Scanning dependencies of target opennurbs
Linking CXX static library libopennurbs.a
[ 0%] Built target opennurbs
... |
et il compile jusqu'au bout. Sauf qu'a l'exécution, j'ai cette erreur "undefined symbol"
Votre aide est la bienvenue :) !