2012-11-29 2 views
2

그냥 CMakeLists.txt에 레몬 라이브러리를 추가하고 싶습니다. CMake를 사용하지 않을 때 "-lemon"을 추가하면 모든 것이 잘되었지만 이제는 CMake 파일에 추가하는 절차를 알지 못합니다.CMake : 레몬 라이브러리 포함

그것은 매우 간단
# Created by the script cgal_create_cmake_script_with_options 
# This is the CMake script for compiling a set of CGAL applications. 

project(ssp) 


cmake_minimum_required(VERSION 2.6.2) 
if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" VERSION_GREATER 2.6) 
    if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}" VERSION_GREATER 2.8.3) 
    cmake_policy(VERSION 2.8.4) 
    else() 
    cmake_policy(VERSION 2.6) 
    endif() 
endif() 

set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true) 

if (COMMAND cmake_policy) 

    cmake_policy(SET CMP0003 NEW) 

endif() 

# CGAL and its components 
find_package(CGAL QUIET COMPONENTS ) 

if (NOT CGAL_FOUND) 

    message(STATUS "This project requires the CGAL library, and will not be compiled.") 
    return() 

endif() 

# include helper file 
include(${CGAL_USE_FILE}) 


# Boost and its components 
find_package(Boost REQUIRED) 

if (NOT Boost_FOUND) 

    message(STATUS "This project requires the Boost library, and will not be compiled.") 

    return() 

endif() 

# include for local directory 

# include for local package 

set(CMAKE_CXX_FLAGS "-lemon") 


# Creating entries for target: ssp 
# ############################ 

add_executable(ssp arrangement.cpp main.cpp polygonOperations.cpp scheduleGraph.cpp) 

add_to_cached_list(CGAL_EXECUTABLE_TARGETS ssp) 

# Link the executable to CGAL and third-party libraries 
target_link_libraries(ssp lemon ${CGAL_LIBRARIES} ${CGAL_3RD_PARTY_LIBRARIES}) 

답변

2

target_link_libraries을 사용합니다 :

편집 내 CMakeLists.txt을 포함 할

project(test) 

add_executable(mine test.c) 

target_link_libraries(mine m) 

이 예에서, 내가 libm의에 연결하고 있습니다 곳. 귀하의 경우 mlemon입니다. 적어도, 도서관 이름이 lemon 또는 emon 인 경우 -l이 플래그이고 그 이름이 따라야합니다 (즉, -lm 링크 libm)라는 질문에 확신이 없습니다. 내가 make VERBOSE=1를 실행 (그리고 중요하지 않은 행을 제거)하면 내 간단한 예를 들어

는 :

[100%] Building C object CMakeFiles/mine.dir/test.c.o 
/usr/bin/cc -o CMakeFiles/mine.dir/test.c.o -c /home/tgallagher/temp/test.c 
Linking C executable mine 
/usr/local/bin/cmake -E cmake_link_script CMakeFiles/mine.dir/link.txt --verbose=1 
/usr/bin/cc  CMakeFiles/mine.dir/test.c.o -o mine -rdynamic -lm 

그래서 먼저 소스 파일을 컴파일 후 링커 줄에 -lm을 넣습니다.

+0

라이브러리 이름은 실제로 '레몬'입니다. 그러나'make '명령을 실행하면'clang : warning : -lemon : '-c'가있을 때 '링커'입력이 사용되지 않는 오류가 발생합니다. –

+0

@MauricioZambon 경고이기 때문에 결과 실행 파일은 여전히 작업? – tpg2114

+0

아니요, 라이브러리를 연결하지 않습니다. –

관련 문제