2010-07-20 4 views
1

J'ai des difficultés à faire fonctionner mon projet avec kdevelop.kdevelop: éditer CMakeLists.txt

Dans le CMakeLists.txt j'ai inclus les chemins vers les bibliothèques que j'utilise:

cmake_minimum_required(VERSION 2.4.6) 
PROJECT(Ormapi) 
INCLUDE_DIRECTORIES("/dir/whatever/local/dir/include") < here is defined global.h 
INCLUDE_DIRECTORIES("/dir/whatever/local/src")  

ADD_EXECUTABLE(Ormapi main.cpp OrmAPI.cpp) 

main.cpp utilise une instance de la classe que je l'ai défini dans OrmAPI.cpp. Le problème est que lorsque j'essaie de créer une instance de n'importe quelle autre classe définie dans les include_directories ci-dessus, j'obtiens les deux erreurs "référence non définie à" et "référence non définie à".

C'est l'appel du constructeur de OrmAPI.cpp (Global est la classe qui existe à l'intérieur des répertoires inclus):

OrmAPI::OrmAPI(){   
Global::dirs()->addResourceDir("mydir");  

} 

Je suis sûr à 99% qu'il est lié avec le CMakeLists.txt, mais je ne sais pas ce qui peut arriver sur Terre.

Vous ne savez pas où chercher?

+2

Essayez de le rendre plus clair comment vos chemins sont inclus. Au lieu d'utiliser '...' utilisez un faux répertoire comme 'INCLUDE_DIRECTORIES ("/fake/dir/src ")' – Gianni

Répondre

4

a finalement trouvé le problème:

cmake_minimum_required(VERSION 2.4.6) 
PROJECT(Ormapi) 
INCLUDE_DIRECTORIES("/dir/whatever/local/dir/include") < here is defined global.h 
INCLUDE_DIRECTORIES("/dir/whatever/local/src")  

ADD_EXECUTABLE(Ormapi main.cpp OrmAPI.cpp) 
target_link_libraries(Ormapi /dirdir/lib.so) <<< 

Depuis que je suis en train de créer des instances d'objets déclarés dans ces chemins, je dois inclure une trop bibliothèque partagée. Mais il doit être après l'ADD_EXECUTABLE. Je lisais l'arbre des dépendances de l'autre côté.

BTW: J'ai trouvé here un énorme ammount d'informations intéressantes sur le traitement des Makefiles, CMakeLists, etc ..

Questions connexes