2017-06-05 13 views
1

通常のコンパイルが(正常に動作します):CMakeListsに外部ライブラリを追加するには?

./dbhandler 

CMakeLists.txt(標準):

cmake_minimum_required(VERSION 2.8.9) 
project(DBHandler) 
include_directories(include) 
file(GLOB SOURCES "src/*.cpp") 
target_link_libraries(dbhandler config++ pqxx pq) 
add_executable(dbhandler ${SOURCES}) 

変更する方法CMakeLists.txt

g++ DBHandler.cpp Functions.cpp Main.cpp -I/usr/local/include -L/usr/local/lib -lconfig++ -lpqxx -lpq -o dbhandler 

を実行することが可能にそれ `s追加:

-I/usr/local/include -L/usr/local/lib -lconfig++ -lpqxx -lpq 

cmakeを使用してプログラムをコンパイルするには?

+1

可能な複製](https://stackoverflow.com/questions/43136418/how-to-add-l-ell-compiler-flag-in-cmake) – Tsyvarev

+0

私はadd_executableを呼び出して最初にターゲットを作成し、後でライブラリを指定する必要があると思いますtarget_link_librariesを使用します。 – vre

答えて

0

正解を使用するためにcmakeのパッケージPkgConfigを使用することですpkg_search_module

あなたのファイルがなります:

cmake_minimum_required(VERSION 2.8.9) 
project(DBHandler) 

find_package(PkgConfig REQUIRED) 

pkg_search_module(CONFIGPP REQUIRED config++) 
pkg_search_module(PQ REQUIRED pq) 
pkg_search_module(PQXX REQUIRED pqxx) 

include_directories(include ${CONFIGPP_INCLUDE_DIRS} ${PQ_INCLUDE_DIRS} ${PQXX_INCLUDE_DIRS}) 
file(GLOB SOURCES "src/*.cpp") 
target_link_libraries(dbhandler ${CONFIGPP_LIBRARIES} ${PQ_LIBRARIES} ${PQXX_LIBRARIES}) 
add_executable(dbhandler ${SOURCES}) 
CMakeので[追加する方法「-l」(エル)コンパイラフラグの
+0

CMakeエラー/usr/share/cmake-3.7/Modules/FindPkgConfig.cmake:637(メッセージ): 必要な 'pqxx'が見つかりません ライブラリはsudo apt-get installによってインストールされました...ソースからではありません。おそらく、これはfindlib.cmake-sファイルがないという問題ですか? – user3455638

+0

パッケージ 'libpqxx-dev'を' sudo apt-get install \t libpqxx-dev' – OlivierM

+0

でインストールしてください。 – user3455638

関連する問題