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

我使用自制软件安装 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 回答