14

Cmake ですべてを再度コンパイルして、C++ プロジェクトを Windows から Debian に変換しようとしています。

Linux での作業にはあまり慣れていませんが、すべてを適切にインストールすることができました。

これはエラーです:

/usr/bin/ld: ../shared/libshared.a(BigNumber.cpp.o): undefined reference to symbol 'BN_new@@OPENSSL_1.0.2d'

//usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.2: error adding symbols: DSO missing from command line

これは実際にはよくある質問のように思えますが、Cmake をどうすればよいかわかりません。私はすでに次のようないくつかの答えを見ました:

コマンド ラインに DSO がありません

ソース ディレクトリの静的ライブラリにリンクするように CMake に指示するにはどうすればよいですか?

cmakeファイルにリンカーまたはコンパイルフラグを追加するには?

私は少し混乱しています.Cmakeで何をする必要があるかを理解するのを手伝ってくれませんか?

ありがとうございました

4

2 に答える 2

1

BigNumber.cpp発生しているエラーは、ファイルで呼び出された関数のリンクが見つからないことに関するものです。

何が起こっているかというとCMakeLists.txt、次のライブラリが不足している可能性が最も高いです。

TARGET_LINK_LIBRARIES( youApp
  library1
  library2
)

PS: ライブラリを呼び出す順序も、リンカーを適切に機能させるために重要です。

于 2016-10-16T15:08:51.247 に答える