CMake link to an external library

First of all, I am new to CMake. I just started working with him. I want to link an external library to my project. I use the code that I take from the CMake wiki (at the end of the article). Here is my 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) 

And here is the error text:

 -- 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! 

How can I do it right?

+4
source share
1 answer

It looks like you just missed the add_executable call. You need to add main as an executable target in the CMakeLists.txt file:

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

Source: https://habr.com/ru/post/1485845/


All Articles