基本的なObjective-C++ファイルからCocoa Framework(MultitouchSupport、具体的には)を使用しようとしていますが、g ++があたかも定義されていないシンボルエラーgccよりもリンカーのフラグが違うはずです。C++とObjective-C++のCocoaフレームワークとのリンク
私の究極の目標は、ここから得たいくつかの基本的なObjective-CコードとC++ネットワーキングライブラリを統合することです:http://steike.com/code/multitouch/。
私は元のコードをコンパイルするために、これを実行すると、それが正常に動作します:
gcc -F/System/Library/PrivateFrameworks -framework MultitouchSupport test.m -o test -std=c99
しかし、それは、後にC++ファイルをインクルードし、参照できるように、私は、test.mm
にファイルの名前を変更する場合、次のようにはありません作品:
g++ -F/System/Library/PrivateFrameworks -framework MultitouchSupport test.mm -o test
、私にこれらのエラーを与える:
Undefined symbols for architecture x86_64:
"MTDeviceCreateDefault()", referenced from:
_main in ccq0vzuM.o
"MTRegisterContactFrameCallback(void*, int (*)(int, Finger*, int, double, int))", referenced from:
_main in ccq0vzuM.o
"MTDeviceStart(void*, int)", referenced from:
_main in ccq0vzuM.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make: *** [testpp] Error 1
このObjective-C++ファイルが、私が探しているフレームワークを見るためには何が必要なのですか?C++を使うことができますか?
ありがとうございます!
ありがとうございました!私は 'extern" C "のものはC++とCとの混合にのみ関係していると仮定しました。 すべてコンパイルされていますので、今すぐテストしなければなりません:) – DuncanBoehle
C++とCをミックスしています。 C++(実際にはObjective-C++)コードからアクセスしようとしています。ライブラリやあなたのコードにObj-Cコードが含まれていても差はありません。 –