2013-06-12 200 views
4

首先,我是CMake的新手。我刚开始使用它。我想将外部库链接到我的项目。我使用的代码是CMake wiki(文章最后)。这是我的CMakeLists.txt:CMake链接外部库

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! 

我如何做是正确的?

回答

8

看起来你只是错过了一个add_executable电话。你需要在你的CMakeLists.txt添加main作为一个可执行的目标:

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

非常感谢你!这真的帮助我! – desperius