0

現在、プロジェクトの 1 つを移植可能な cmake に変更しています。プロジェクト ディレクトリ内に、通常の makefile によってビルドされる"boclib"という外部ライブラリを含むフォルダーがあります。実行可能ファイルを"ProjectDir"/boclib/bin/libboc.aにリンクする必要があります。私の現在の試みは次のようになります。

  FIND_LIBRARY(BOCLIB boc ${PROJECT_BINARY_DIR}/boclib/bin)
  Message(${BOCLIB})
  TARGET_LINK_LIBRARIES(prod ${BOCLIB})

Meassage の出力から正しいライブラリが得られます。

"AbsulutePathToProjectDir"/boclib/bin/libboc.a

リンク時にこれを出力します:

g++ -lm -ldl CMakeFiles/prod.dir/src/BocData.cpp.o CMakeFiles/prod.dir/src/delay.cpp.o     CMakeFiles/prod.dir/src/leoni.cpp.o CMakeFiles/prod.dir/src/main.cpp.o CMakeFiles/prod.dir/src/scope.cpp.o CMakeFiles/prod.dir/src/SerialCom.cpp.o CMakeFiles/prod.dir/src/tester.cpp.o CMakeFiles/prod.dir/src/Utils.cpp.o  -o prod  boclib/bin/libboc.a -lboost_program_options -lboost_system -lboost_filesystem -lboost_serialization -lboc

boclib には -L オプションはありません。私は何を間違っていますか?

どんな助けでも大歓迎です。

4

1 に答える 1

1

貼り付けた g++ コマンドには、「boc」ライブラリが 2 つ出現してboclib/bin/libboc.aいる-lbocようです。

2番目のものは必要ありません。追加された理由を見つけて削除すれば、問題ありません。

于 2013-06-08T12:46:32.297 に答える