1

さらに別のシンボルが見つからないという問題が Mac OS X で発生しました。私は、コンパイル時に次の出力を生成する libev イベント ループ ライブラリを使用する C プログラムを作成しました。

$ make
clang midnight.c midnight_logging.c -o midnight
Undefined symbols for architecture x86_64:
  "_ev_default_loop", referenced from:
      _main in midnight-Wlcawk.o
  "_ev_io_start", referenced from:
      _main in midnight-Wlcawk.o
  "_ev_run", referenced from:
      _main in midnight-Wlcawk.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [midnight] Error 1

homebrew を使用して libev をインストールしました。共有ライブラリは通常どおり /usr/local/lib にあり、「-I /usr/local/lib」、「-l libev」、および「-L /usr/local/lib」を含むコンパイラ引数のすべての組み合わせを使用しました"。

助けていただければ幸いです。静的にコンパイルする必要はありません。

4

1 に答える 1

4

しかし、あなたはlibevにリンクしていません! コンパイラは千里眼ではありません(リンカでもありません)。それらのシンボルを検索するものを指定する必要があります...

clang midnight.c midnight_logging.c -o midnight -lev
于 2013-04-07T23:59:23.303 に答える