我正在尝试编译与“UNIX® 环境中的高级编程”一书相关的代码
当我尝试像这样编译测试文件时:
$ gcc -L ../lib/ -l apue foo.c
我得到:
/tmp/cccXkUae.o: In function `main':
foo.c:(.text+0x2b): undefined reference to `err_sys'
...
collect2: error: ld returned 1 exit status
但是,函数似乎是在库中定义的...
$ grep err_sys ../lib/libapue.a
Binary file ../lib/libapue.a matches
最终,编译没有错误:
$ gcc foo.c ../lib/error.c
只是想了解我做错了什么。
最佳答案
可用的源代码
在 http://www.apuebook.com/src.3e.tar.gz为您(构建后)在 include/
中获取名为 apue.h
的 header ,在 lib< 中获取名为
。因此,要针对 libapue 进行编译和链接,您需要:libapue.a
的静态库
gcc -I $apue_root/include -L $apue_root/lib your_file.c -lapue
关于c - apue相关代码编译时链接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39334261/