0

g++ 4.0.1 で lib を作成しようとしていますが、探しています_main(これは意図的にコードに含まれていません)。そこに入れる必要_mainがありますか、それとも気の利いたスイッチで回避できますか?私の現在のコマンドラインは次のようになります。

g++ -shared -o mylib.so myobj1.o myobj2.o ...

ちなみに、私は g++ powerpc-apple-darwin9 を使用していますが、これは無関係であると推測/期待しています。より完全な印刷物:

$g++ -O0 -ggdb -fPIC -D_DARWIN_C_SOURCE -D_STLP_THREADS -D_POSIX_PTHREAD_SEMANTICS -Istlport/stlport -Iutf8cpp -Ifreealut-1.1.0/include -Iode-0.11.1/include -Iode-0.11.1/ode/src -Iode-0.11 .1/ode/src/joints -Iode-0.11.1/OPCODE -Iode-0.11.1/GIMPACT/include -Iode-0.11.1/ou/include -DPOSIX -D_XOPEN_SOURCE=600 -D_DEBUG -D_CONSOLE -DPNG_NO_ASSEMBLER_CODE -DdSingle -DdTLS_ENABLED=1 -DHAVE_CONFIG_H=1 -DLEPRA_WITHOUT_FMOD -framework OpenGL -framework CoreServices -framework OpenAL -DMAC_OS_X_VERSION=1050 -Wno-unknown-pragmas -o myfile.o -c myfile.cpp

$g++ -shared -framework OpenGL -framework AppKit -framework Cocoa -lobjc -lstlport -framework CoreServices -Lstlport/build/lib/obj/gcc/so -L. -Lopenal-soft-1.10.622 -Lfreealut-1.1.0/admin/VisualStudioDotNET/alut -L../Lepra -L../TBC -L../Cure -L../UiLepra -L../UiTBC -L../UiCure -L../Life -framework OpenAL -o libThirdParty.so myfile.o
未定義のシンボル:
  「_main」、次から参照:
      crt1.10.5.o で開始
ld: シンボルが見つかりません
collect2: ld が 1 つの終了ステータスを返しました
make: *** [libThirdParty.so] エラー 1
4

1 に答える 1

1

解決策は、コンパイラをアップグレードすることです。Adil が述べたように、4.1.2 は機能しているようです。私自身、4.3.4にアップグレードしましたが、それもうまくいきました。

于 2010-02-09T08:22:52.673 に答える