связывание сторонних библиотек - PullRequest
5 голосов
/ 28 октября 2009

Я создал простое приложение, которое работает нормально. Однако теперь мне нужно связаться с некоторыми библиотеками в следующем каталоге.

/opt/norton/lib

В моем файле make у меня есть следующее с работами, но мне нужно использовать cmake

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

LIBS = -lntctrl

В моем CMakeList.txt у меня есть это, но не работает, я продолжаю получать следующую ошибку:

undefined reference to `nt_init'

Это мой 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) 

Большое спасибо за любой совет,

1 Ответ

7 голосов
/ 28 октября 2009

Попробуйте TARGET_LINK_LIBRARIES(ntctrl), флаг -l не должен использоваться там (угадайте из того, что я имею в виду)

Вот как я бы написал файл cmake:

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

Чтобы показать, какие фактические командные строки выполняются во время сборки, используйте:

make VERBOSE=1

Может быть, это показывает разницу между тем, что вы запускали вручную, и командами, сгенерированными cmake.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...