c99 モードを使用せずに gcc でコンパイルした静的ライブラリがあります。gcc -std=c99 を使用してコンパイルでリンクしようとしています。これは私にエラーを与えています:
undefined reference to 'functionName'
ここで、functionName はスタティック ライブラリ内の関数です。
これは私のコンパイルです:
gcc -std=c99 -g -I../ -Llib/ -lmylib test.c ../file1.c ../file2.c -o test
ここで C99 を使用しているのは、test.c #include のコードに C99 標準を使用する実装のヘッダー ファイルが含まれているためです。
スタティック ライブラリ (lib/libmylib.a) は、C99 モードでのコンパイルに失敗する (ただし、c99 フラグなしでコンパイルする) いくつかのライブラリを使用するコードであるため、c99 標準でコンパイルされていません。
-L & -l フラグの順序を最後 & gcc -std=c99 の直後に変更しようとしましたが、同じ「未定義の参照」エラーが発生しました。
これらをリンクするにはどうすればよいですか?
ありがとうございました。
編集:私が言及した関数functionName
は、ここに示されている setupStacktrace() の仮名です: http://pastebin.com/2RbEEPaj。署名ですvoid setupStacktrace();