CMake如何链接外部库

5

首先,我是一个CMake的新手。我刚刚开始使用它。我想将一个外部库链接到我的项目中。我使用的代码来自CMake wiki(在文章末尾)。这是我的CMakeLists.txt:

cmake_minimum_required(VERSION 2.8)

project(hello_world)

set(SOURCE_EXE main.cpp)

include_directories(foo)

add_library(foo STATIC IMPORTED)
set_property(TARGET foo PROPERTY IMPORTED_LOCATION /usr/lib/libfoo.a)

target_link_libraries(main foo)

以下是错误文本:

-- The C compiler identification is GNU 4.7.3
-- The CXX compiler identification is GNU 4.7.3
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
CMake Error at CMakeLists.txt:24 (target_link_libraries):
  Cannot specify link libraries for target "main" which is not built by this
  project.


-- Configuring incomplete, errors occurred!

我应该如何正确地完成这个任务?

1个回答

8

看起来你只是缺少了一个add_executable的调用。你需要在CMakeLists.txt中添加main作为可执行目标:

set(SOURCE_EXE main.cpp)
add_executable(main ${SOURCE_EXE})
...
target_link_libraries(main foo)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接