2016-08-02 16 views
0

私はCMakeを使ってboost、eigen、mysqlclientライブラリを使用するC++プロジェクトをコンパイルしています。 makeプロセス中にコードはコンパイルされたようですが、リンク段階で "ld:-lmysqlclientのライブラリが見つかりません"というエラーが表示されます。私のCMakeLists.txtファイルに のtarget_link_libraries(my_executable mysqlclient) という行があります。その行を削除すると、エラーメッセージは表示されなくなりますが、定義されていないシンボルのエラー(mysqlとの関係)の長いリストが表示されます。 プロジェクトはXcodeで正常にビルドされているので、少なくとも私のマシンにはmysqlクライアントライブラリが設定されています。 ヒント、ご提案はありますか?CMakeがmysqlclientライブラリを見つけることができません

答えて

1

あなたは(ここでは、ファイルを保存:${CMAKE_SOURCE_DIR}/cmake/FindMySQL.cmakeとしてhttps://cmake.org/Wiki/CMakeUserFindMySQL)をKitwareからFindMySQL.makeパッケージを使用したいと思うでしょう、ライブラリを見つけ、:

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")  
find_package(MySQL) 

最後に、cmakeの中にあなたのリンクのステップが

に置き換えてください
target_link_library(myexecutable ${MYSQL_LIBRARY}) 

${MYSQL_LIBRARY}あなたは

+0

Thとリンクするライブラリファイルへの完全修飾パスを含める必要がありますanks。私はあなたが示唆したことを試してみました。ファイルをFindMySQL.cmakeとして保存してから、その2行をCMakeLists.txtに追加しました。 CMakeLists.txt:64(find_package): このプロジェクトにはCMAKE_MODULE_PATHに "FindMySQL.cmake"を指定しないことにより、 が提供するパッケージ設定ファイルを検索するようにCMakeに依頼しています。 "MySQL"しかし、 CMakeは1つを見つけませんでした。 MySQLConfig.cmake私はモジュールパスの問題を解決する答えを編集した のmysql-config.cmake –

+0

: は 次のいずれかの名前で「MySQLの」が提供するパッケージ構成ファイルが見つかりませんでした。私はあなたがそのセットアップを正しくしていたと仮定し、正しい場所にファイルをダウンロードしました。 – subzero

+0

ありがとうございます。実際、私はモジュールパスを設定しましたが、同じエラーを返します。 –

関連する問題