6

これが機能しない理由、ファイルtest.c:

#include <event.h>
int main(void)
{
    event_init();
    return 0;
}

次に: gcc -o test.o -c test.c正常に実行されますが、

リンク: g++ -o test -levent test.oプロデュース

test.o: In function `main':
test.c:(.text+0x5): undefined reference to `event_init'
collect2: ld returned 1 exit status

したがって、 としてリンクすることはできませんC++。これを解決するには?としてリンクし、としてC++コンパイルする必要がありますC

4

1 に答える 1

14

この質問は何度も聞かれました。Linux では、コンパイル コマンドのオブジェクト ファイルとソース ファイルの後にライブラリを配置する必要があります。だから試してみてください

g++ -Wall -g -c mytest.cc 
g++ -Wall -g mytest.o -levent -o mytest

test既存のユーティリティまたはシェル ビルトインであるテスト プログラムを呼び出すことは避けてください。

-Wall初心者として、要求されるすべての警告とデバッグのために常にコンパイルし、-g使用方法を学ぶことを忘れないでくださいgdb

于 2011-11-18T17:07:27.617 に答える