基本的に、.cpp を実行し、いくつかの .a ファイルと gcc、fortran をリンクしたいと考えています。コマンドは次のとおりです
g++ -L/Users/myhome/Ipopt-3.10.0/build/lib -lipopt -L/Users/myhome/lcoinmumps -lpthread -framework vecLib -L/Developer/usr/llvm-gcc-4.2/lib/gcc/i686 -apple-darwin11/4.2.1 -L/usr/local/gfortran/lib -lgfortran -lgcc_static -lcc_kext -lgcc -lSystem -framework vecLib -framework vecLib -lm -ldl -o cpp_example cpp_example.cpp
エラーは次のように表示されます
ld: 警告: ld: 警告: ファイル / Developer/usr/llvm-gcc-4.2/lib/gcc/i686-apple-darwin11/4.2.1/libgcc_static.aを無視します。ファイルはアーカイブ用にビルドされましたが、これは対象のアーキテクチャではありませんリンク (x86_64) : /Developer/usr/llvm-gcc-4.2/lib/gcc/i686-apple-darwin11/4.2.1/libgcc_static.a 無視ファイル /Developer/usr/llvm-gcc-4.2/lib/gcc/ i686-apple-darwin11/4.2.1/libgcc.a、リンクされているアーキテクチャではないアーカイブ用にビルドされたファイル (x86_64): /Developer/usr/llvm-gcc-4.2/lib/gcc/i686-apple-darwin11 /4.2.1/libgcc.a
アーキテクチャ x86_64 の未定義シンボル: "MyNLP::MyNLP()"、参照元: ccY99KRH.o ld の _main: アーキテクチャ x86_64 のシンボルが見つかりません collect2: ld は 1 終了ステータスを返しました
太字のテキストが示すように、エラーは I am running on 32bit kernel or CPU のようです。しかし、私は x86_64 を使用しています:ここに従って boost.plist を変更しました。 「about mac」は、現在使用しているハードウェアとソフトウェアの両方が 64 ビットであることを明確に証明しています。
ここでは、mac アーキテクチャ(?)がなぜか 64 ビットを認識できなかったと説明しているようです。
しかし、ファイル (.a .cpp .h) を Xcode に追加してプロジェクトを一緒に実行すると、正常に動作します。
コマンドラインが機能しない理由を知っている人はいますか? libgcc(i686-apple-darwin11-llvm-gcc-4.2) が 64 ビット版として認識されないのはなぜですか? そして最も重要なのは、コマンドを機能させる方法です。
ところで、私のシステムはライオン10.7.4です