1

この質問は、私が unix システムに関する g++ についていくつかのことを学んだので、少し行ったり来たりしました (誰かを台無しにしてしまったらごめんなさい)。

現在完了しようとしているプロジェクトでは、twitcurlを Xcode とOpenFrameworksで実行したいと考えています。誰かがこれを行うことができた場合は、この難解な偉業を私と共有してください.

以下は、私が立ち往生していることのいくつかです:

彼らのwikiからの指示のいくつかを逆流させる

  • ライブラリのソースをダウンロードする
  • ビジュアル C++ または make を使用して twitcurl ライブラリをビルドします (それらも cmake です)。
  • Twitter アプリケーションに twitcurl.h と curl ヘッダーを含め、twitcurl.lib と libcurl.lib/libcurl.dll にリンクします。

これは簡単に思えますが、ライブラリを作成すると、twitcurl.lib. 別のファイルlibtwit.aが生成されます。これは、OSX が必要とするものであると思われます (インストールするusr/local/とヘッダーと一緒に挿入されるため)。ただしtwitcurl.h、ヘッダーに を含めて twitCurl オブジェクトを作成しようとすると、未定義のシンボルがさらに取得されます

Undefined symbols for architecture i386:
"twitCurl::~twitCurl()", referenced from:
  testApp::setup()     in testApp.o
"twitCurl::twitCurl()", referenced from:
  testApp::setup()     in testApp.o
ld: symbol(s) not found for architecture i386

私は現在、twitcurl が 64 ビットに対応していると想定しています (CFLAGS=-m32 を追加しようとしましたが、失敗しました)。私の知る限り、Openframeworks は現在 32 ビットしかありません。これは、twitcurl が私にとって選択肢ではないかもしれないことを意味しますが、もし誰か方法を知っているなら、私に知らせてください!

前もって感謝します。

4

3 に答える 3

0

twitcurl を再コンパイルすることをお勧めします。最後に見たとき (3 か月前)、それは VC6 でコンパイルされており、C++ シンボルをマングリングする独自の方法があるため、lib は g++ に対して正しくリンクしません。

その後、それを直接インポートすることもでき、ライブラリへのリンクについて心配する必要はありませんが、ビルド済みのシステムに統合する前に、小さなデモアプリでテストすることをお勧めします。エラーはあなたの側または他の場所にあります。

また、この種の問題に関しては、問題を説明するだけでなく、正確なコンパイラ エラーが役に立ちます。

于 2011-09-29T16:08:35.463 に答える
0

あなたが投稿したエラーメッセージはcurl_easy_setopt、libcurlの一部である関数の定義を探していることをリンカーが長々と伝えている方法です。行に追加-lcurlすると、g++これが修正されます (リンカーに libcurl でリンクするように指示することにより)。

ただし、twitcurl には Makefile が付属しており、既にこれが行われています。さらに、そこで共有ライブラリを構築しようとしている場合、それは間違っています...

于 2011-09-29T20:38:55.310 に答える
0

たぶん、twitter 用の openFrameworks アドオンである ofxTwitter を試して、twitter 機能を取得することができます。ここから入手してください: http://forum.openframeworks.cc/index.php/topic,2750.0.html

于 2011-10-03T12:16:22.810 に答える