【发布时间】:2011-05-03 11:18:04
【问题描述】:
我有一个代码库(完全用 C 编写),我通常在 Windows 下编译成 .DLL。
我想在 Linux 下编译它,以便分发它。我不在乎我是否将其分发为 .a、.so 或一堆 .o 文件。
所有单独的.c 文件都编译成功。但是当我尝试编译一个包含所有.o 文件的测试可执行文件时,我得到了一堆未定义的引用错误。
所有.o 文件都作为完整路径在命令行上,我没有收到任何有关丢失文件的错误。
cc testctd.c -o testctd.out -lm -lc $LIBRARY-PATH/*.o
我还对_open、_write 等有未定义的引用。
【问题讨论】:
-
能否粘贴完整的编译命令行和错误信息?
-
您使用什么命令将内容链接到可执行文件中?除了 _open、_write 等,还有哪些未定义的引用?
-
编辑显示命令行。错误消息是“未定义对 ... 的引用”,其中 ... 是 _open、_write 以及我的库中在程序中使用的一堆例程。
-
我们能看到完整的、未经编辑的链接器输出吗?
标签: gcc linker undefined-reference cc