Précédent   Forum du club des développeurs et IT Pro > C et C++ > Outils pour C & C++ > Autres
Autres Vos questions sur les autres EDI ou éditeurs : Emacs, Vim, Kdevelop, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 13/06/2012, 11h03   #1
gestin.ronan
Invité de passage
 
Homme
Étudiant
Inscription : juin 2012
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2012
Messages : 2
Points : 0
Points : 0
Par défaut [CMAKE] undefined reference to

Bonjour,

Lors de que je lance le Makefile qui est généré par l’outil CMAKE la compilation de mon exécutable s’arrête et m'affiche :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
[  5%] Building CXX object commun/configuration/src/config/CMakeFiles/COMMUN_blaConfig.dir/blaConfig.cpp.o
Linking CXX shared library libCOMMUN_blaConfig.so
[  5%] Built target COMMUN_blaConfig
[ 11%] Building C object commun/configuration/src/xml_tags/CMakeFiles/COMMUN_XML_TAGS.dir/config_tags.c.o
Linking C shared library libCOMMUN_XML_TAGS.so
[ 11%] Built target COMMUN_XML_TAGS
[ 16%] Building CXX object commun/transcode/src/CMakeFiles/COMMUN_Trancecode.dir/transcode.cpp.o
Linking CXX shared library libCOMMUN_Trancecode.so
[ 16%] Built target COMMUN_Trancecode
[ 22%] Building C object commun/divers/CMakeFiles/COMMUN_FGETS2.dir/src/fgets2.c.o
Linking C shared library libCOMMUN_FGETS2.so
[ 22%] Built target COMMUN_FGETS2
[ 27%] Building CXX object commun/chiffrement/src/CMakeFiles/COMMUN_CHFT_FEDEKEY.dir/fedekey.cpp.o
Linking CXX shared library libCOMMUN_CHFT_FEDEKEY.so
[ 27%] Built target COMMUN_CHFT_FEDEKEY
[ 33%] Building CXX object chft_outils_dechiffrement/metier/CMakeFiles/BLA_CHFT_MET_OBJ.dir/chft_op_cpp.cpp.o
[ 38%] Building CXX object chft_outils_dechiffrement/metier/CMakeFiles/BLA_CHFT_MET_OBJ.dir/BLAChftCharg.cpp.o
[ 44%] Building CXX object chft_outils_dechiffrement/metier/CMakeFiles/BLA_CHFT_MET_OBJ.dir/blaChftKLect.cpp.o
Linking CXX shared library libbla_CHFT_MET_OBJ.so
[ 44%] Built target bla_CHFT_MET_OBJ
[ 50%] Building C object chft_outils_dechiffrement/metier/CMakeFiles/bla_CHFT_OP_OBJ.dir/chft_operations.c.o
Linking C shared library libbla_CHFT_OP_OBJ.so
[ 50%] Built target bla_CHFT_OP_OBJ
[ 55%] Building C object chft_outils_dechiffrement/metier/ncipher/CMakeFiles/DCHFT_METIER_NCIPHER.dir/chft_ncipher_op.c.o
[ 61%] Building C object chft_outils_dechiffrement/metier/ncipher/CMakeFiles/DCHFT_METIER_NCIPHER.dir/simplebignum.c.o
Linking C shared library libDCHFT_METIER_NCIPHER.so
[ 61%] Built target DCHFT_METIER_NCIPHER
[ 66%] Building C object chft_outils_dechiffrement/metier/openssl/CMakeFiles/DCHFT_METIER_OSSL.dir/chft_openssl_op.c.o
Linking C shared library libDCHFT_METIER_OSSL.so
[ 66%] Built target DCHFT_METIER_OSSL
[ 72%] Building C object chft_outils_dechiffrement/commun/CMakeFiles/bla_CHFT_COMMON_OBJ.dir/chft_consts.c.o
Linking C shared library libbla_CHFT_COMMON_OBJ.so
[ 72%] Built target bla_CHFT_COMMON_OBJ
[ 77%] Building CXX object chft_outils_dechiffrement/api/CMakeFiles/bla_CHFT_API_OBJ.dir/chft_init.cpp.o
[ 83%] Building CXX object chft_outils_dechiffrement/api/CMakeFiles/bla_CHFT_API_OBJ.dir/chft_op.cpp.o
Linking CXX shared library libbla_CHFT_API_OBJ.so
[ 83%] Built target bla_CHFT_API_OBJ
[ 88%] Building CXX object chft_outils_dechiffrement/test/CMakeFiles/testInit.dir/main.cpp.o
Linking CXX executable bin/testInit
CMakeFiles/testInit.dir/main.cpp.o(.text+0x2e8): In function `main':
: undefined reference to `init_CHFTLib(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, blaLogger*)'
CMakeFiles/testInit.dir/main.cpp.o(.text+0x593): In function `main':
: undefined reference to `cryptFederationKey(unsigned long, unsigned long, blaLogger*)'
collect2: ld a retourné 1 code d'état d'exécution
make[2]: *** [chft_outils_dechiffrement/test/bin/testInit] Erreur 1
make[1]: *** [chft_outils_dechiffrement/test/CMakeFiles/testInit.dir/all] Erreur 2
mon fichier CMakeLists est le suivant :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
cmake_minimum_required(VERSION 2.8)
 
#Déclaration du projet
project(bla)
set(EXECUTABLE_OUTPUT_PATH bin/${CMAKE_BUILD_TYPE}) 
 
 
add_executable(
    ${MAINTEST}
    main.cpp
)
 
include_directories(${CMAKE_BINARY_DIR})
 
 
 
#Configuration de l'édition de liens
target_link_libraries(
${MAINTEST}
${LIB_FOR_MAIN}
)
target_link_libraries(
${MAINTEST}
${LIBS})
 
 
add_definitions(
${CPLUS_FLAGS}
$(CFLAGS_OPTIONS)
)
add_definitions(${GCC4_COMMON_FLAGS}  ${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS})
 
 
include_directories(
${BLA_CHFT_API_DIR}
${BLA_CHFT_COMMON_DIR}
"${HOME}/bla/dev/commun/configuration/src/config"
"${HOME}/bla/dev/commun/traces/src/gestLog"
"${HOME}/apache/include"
"${HOME}/bla/dev/commun/include"
"${HOME}/bla/dev/commun/chiffrement/src")
j'ai l'impression que il n'arrive pas a faire le lien avec les lib qu'il sont compilé juste avant ou avec les include
auriez vous une idée d'ou cela pourrais venir?

merci d'avance
gestin.ronan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2012, 23h27   #2
aoyou
Membre émérite
 
Inscription : mars 2005
Messages : 860
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 860
Points : 964
Points : 964
Je ne suis pas sûr mais je ne mets jamais deux target_link_librairies pour une même target. Est-ce que
Code :
1
2
3
4
target_link_libraries(
${MAINTEST}
${LIB_FOR_MAIN}
${LIBS})
améliore les choses ?

Sinon, est-ce que les fonctions init_CHFTLib(std::string, blaLogger*) et cryptFederationKey(unsigned long, unsigned long, blaLogger*) sont bien définies ? Si oui, est-ce que les sources les contenant sont bien compilées dans une librairie ? Enfin, as-tu vérifié le contenu de LIB_FOR_MAIN et LIBS ?
aoyou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2012, 14h58   #3
gestin.ronan
Invité de passage
 
Homme
Étudiant
Inscription : juin 2012
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2012
Messages : 2
Points : 0
Points : 0
Oui autant pour moi je suis repassé avec une lib un link mais j'ai toujours la même erreurs. Oui, les méthodes sont bien compilé dans les libs defini avant.

j'ai l'impression qu'il n'arrive pas a récupéré les libs que j'ai compilé a d'autres endroit du projet. comme si elle n'existais pas. elle quel sont bien présente dans les dossier correspondent.
gestin.ronan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2012, 23h33   #4
aoyou
Membre émérite
 
Inscription : mars 2005
Messages : 860
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 860
Points : 964
Points : 964
Si tu ne définis pas LIB_FOR_MAIN ou LIBS dans un Makefile parent, ça ne marchera pas, à moins que tu utilises PARENT_SCOPE.

Par contre, tu peux utiliser directement le nom des librairies où tu veux, au lieu de passer par une variable. N'oublie pas aussi la transitivité : si tu dis qu'une librairie A est linkée contre une librairie B, quand tu linkeras ton exécutable contre A, il sera aussi linké contre B.
aoyou est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 09h42.


 
 
 
 
Partenaires

Hébergement Web