Question

J'ai créé une application simple qui fonctionne bien. Cependant, je dois maintenant créer un lien avec certaines bibliothèques dans le répertoire suivant.

/opt/norton/lib

Dans mon fichier make, les éléments suivants sont présents, mais je dois utiliser cmake

LIBS_PATH = -L/opt/norton/lib
INC_PATH = -I/opt/norton/inc

LIBS = -lntctrl

Dans mon CMakeList.txt, j'ai ceci mais cela ne fonctionne pas, je continue à obtenir l'erreur suivante:

undefined reference to `nt_init'

Ceci est mon CMakeList.txt

# Includes files
INCLUDE_DIRECTORIES(/opt/norton/inc)

# Link libraries
LINK_DIRECTORIES(/opt/norton/lib)

# Add the library that is used by nt_init
TARGET_LINK_LIBRARIES(-lntctrl)

ADD_LIBRARY(application initialize_nw) 

Merci beaucoup pour vos conseils,

Était-ce utile?

La solution

Essayez TARGET_LINK_LIBRARIES (ntctrl) , le drapeau -l ne doit pas être utilisé à cet emplacement (devinez ce que j'ai en tête)

Voici comment j'écrirais le fichier cmake:

include_directories(/opt/norton/inc)
link_directories(/opt/norton/lib)
add_executable(application initialize_nw)
target_link_libraries(application ntctrl)

Pour indiquer quelles sont les lignes de commande réelles exécutées lors d'une construction, utilisez:

make VERBOSE=1

Cela vous indique peut-être la différence entre ce que vous avez exécuté manuellement et les commandes générées par cmake.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top