3

Lemon ライブラリを CMakeLists.txt に追加したいだけです。CMake を使用していないときは、「-lemon」を追加しただけで問題なく動作しましたが、それを CMake ファイルに追加する手順がわかりません。

編集には私のCMakeLists.txtが含まれます:

# 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} )
4

1 に答える 1

3

とても簡単です。 target_link_librariesを使用してください:

project(test)

add_executable(mine test.c)

target_link_libraries(mine m)

この例では、libm に対してリンクしています。あなたの場合、mになりますlemon。少なくとも私は、あなたの質問から、ライブラリ名がフラグであるlemonemon-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から、リンカー行に配置します。

于 2012-11-29T18:15:37.490 に答える