私は、コマンドの最後にCPPファイルと私のコードをコンパイルすることはできませんことに気付きました:GCC静的リンクの順番が
[email protected]$ g++ -lIrrlicht -lGL -lXxf86vm -lXext -lX11 -lXcursor main.cpp
/tmp/ccxlyIri.o: In function `main':
main.cpp:(.text+0x10c): undefined reference to `createDevice'
collect2: error: ld returned 1 exit status
私はディレクティブをリンクする前にそれらを置く場合は、それが正常にコンパイルされます。
[email protected]$ g++ main.cpp -lIrrlicht -lGL -lXxf86vm -lXext -lX11 -lXcursor
[email protected]$
私はいくつかの説明hereとthereを読んだが、それはコンパイルされるソースではなく、ライブラリー・ライブラリの依存関係に来るとき、私はまだかなりそれを得ることはありません。私は、コンパイラが常にコードを最初にコンパイルし、リンカしか呼び出さないと考えていました。その場合、main.cppから構築されたオブジェクトファイルは、リンクプロセスの開始前でもcreateDevice
の機能が必要であることを知っておく必要があります。私のミスはどこですか?
P.S. This質問、重複として提案、それを全く説明していない。