5

私はC++の経験がなく、ユーザーを認証するためのHTTP要求を行うために、C++アプリケーションにわずかな調整を加えるだけで済みます。

Curlppはオプションですが、ライブラリを含めると、ビルド時にエラーが発生します。

Undefined symbols for architecture x86_64:
  "curlpp::OptionBase::OptionBase(CURLoption)", referenced from:
      app_idomsconnector::RTMPAppProtocolHandler::GetAuthPassword(std::string) in libidomsconnector.a(rtmpappprotocolhandler.cpp.o)
      curlpp::OptionTrait<std::string, (CURLoption)10002>::clone() const in libidomsconnector.a(rtmpappprotocolhandler.cpp.o)

私が理解しているように、CMAKELists.txtファイルでライブラリを追加/リンクする必要があります。誰かが私が正確に何を追加する必要があるか教えてもらえますか?(OSX 10.8を実行している)前述したように、私はほとんどの場合Javaを使用しているため、C++の経験はありません。

4

1 に答える 1

12

私が理解しているように、CMAKELists.txtファイルでライブラリを追加/リンクする必要があります。

それはまさにあなたがしなければならないことです:)

C ++では、プロジェクトにライブラリを含めるときに使用する2種類のファイルがあります。

  • シンボルの名前が宣言されているヘッダーファイル(単語のリストなど)
  • コードが存在するオブジェクトファイル(単語が実際に定義されている辞書のような)

(これは少し単純化されていますが、ここでは重要ではありません)

エラーメッセージは、オブジェクトファイルをコンパイラに提供していないことを示しているため、プロジェクトで使用している単語(クラスと関数)の意味がわかりません。

という名前の実行可能ファイルを作成する場合はMyExecutable、次のような行が必要です。

add_executable(MyExecutable ...)

あなたのCMakeLists.txt

この行の後に、追加してみてください

target_link_libraries(MyExecutable curlpp)

私はすでにターゲットのtarget_link_libraries()行を持っています。他のライブラリMyExecutableに追加するだけです。curlpp

于 2013-03-27T12:21:30.550 に答える