参考资料:https://unix.stackexchange.com/questions/105483/compiling-code-from-apue

笔者使用 mac 学习 apue, 在编译的时候出现错误,错误如下:

Undefined symbols for architecture x86_64:
"_TELL_CHILD", referenced from:
_main in 14_5-4244a7.o
"_TELL_PARENT", referenced from:
_main in 14_5-4244a7.o
"_TELL_WAIT", referenced from:
_main in 14_5-4244a7.o
"_WAIT_CHILD", referenced from:
_main in 14_5-4244a7.o
"_WAIT_PARENT", referenced from:
_main in 14_5-4244a7.o
"_err_sys", referenced from:
_lock_test in 14_5-4244a7.o
_main in 14_5-4244a7.o
_lockabyte in 14_5-4244a7.o
"_lock_reg", referenced from:
_lockabyte in 14_5-4244a7.o
ld: symbol(s) not found for architecture x86_64

在解决该问题时浪费很多时间,记下解决办法,希望可以帮助到你。

前提:已经正确安装 apue,安装方法自行搜索,路径如下:

DilldeMacBook-Pro:apue.3e dill$ pwd
/Users/dill/Downloads/apue.3e
DilldeMacBook-Pro:apue.3e dill$ cp include/* /usr/local/include/
DilldeMacBook-Pro:apue.3e dill$ cp lib/* /usr/local/lib/

避免上文的编译错误,采用如下命令编译:

gcc -o myls myls.c -I /usr/local/include -L /usr/local/lib/ -lapue

myls.c 为需要编译的 C 文件

-I 为 gcc 指定 include 地址

-L 为 gcc 指定 library 地址

-lapue 指定在 lib 文件夹中  library 文件名("/usr/local/lib/libapue.a")

-LXXX means to look for a file in the library directory with the name: libXXX.a or libXXX.so.

apue 在 mac 环境编译错误的更多相关文章

  1. lamp环境编译错误

    GD 编译出错解决方法 编译最新的2.0.35版本,用默认的 ./configure编译 当make的时候,出现以下错误 configure.ac:64: error: possibly undefi ...

  2. mac gcc 编译错误 基础问题

    mac gcc  Undefined symbols for architecture x86_64 "std::__1: // Undefined symbols for architec ...

  3. 编译错误“The run destination My Mac 64-bit is not valid for Running the scheme '***',解决办法

    1. iOS APP Project or  Mac APP Project编译错误提示:
“The run destination My Mac 64-bit is not valid for Ru ...

  4. 编译错误“The run destination My Mac is not valid for Running the scheme '***',解决办法

    [转载]   http://blog.csdn.net/duanyipeng/article/details/8007684   编译错误"The run destination My Ma ...

  5. Android编译环境——ubuntu12.04上android2.3.4编译错误以及解决

    Android编译环境——ubuntu12.04上android2.3.4编译错误以及解决 分类: android应用开发2013-08-21 09:20 4222人阅读 评论(3) 收藏 举报 li ...

  6. mac 环境下Android 反编译源码

    mac环境下Android 反编译 一.需要的工具 apktool:反编译APK文件,得到classes.dex文件,同时也能获取到资源文件以及布局文件. dex2jar:将反编译后的classes. ...

  7. Xamarin Studio在Mac环境下的配置和Xamarin.iOS常用控件的示例

    看过好多帖子都是Win环境装XS,Mac只是个模拟器,讲解在Mac环境下如何配置Xamarin Studio很少,也是一点点找资料,东拼西凑才把Xamarin Studio装在Mac上跑起来,如下: ...

  8. (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境

    . . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...

  9. 尝试在Mac上编译DNX

    自从XRE改名为DNX至今,从来没有在Mac OS X上成功编译过DNX.一直很纳闷,难道DNX的开发人员不用Mac?今天突然明白了,DNX的开发人员真的不用Mac.而且DNX用的2个持续集成服务Ap ...

随机推荐

  1. 裸机开发体验之led快速体验

    [root@promote led]# arm-linux-gcc -g -c led.S[root@promote led]# lsled.lds led.o led.S Makefile[root ...

  2. puppet工简介一

    puppet简介一 puppet工作原理 puppet 是一个配置管理工具, 典型的, puppet 是一个 C/S 结构, 当然,这里的 C 可以有很多,因 此,也可以说是一个星型结构. 所有的 p ...

  3. Oracle 之 触发器

    触发器是特定的事件出现的时候,自动隐式执行代码块,这个过程用户无法控制,用户只能控制触发的事件,触发后的操作,触发过程是自动执行的. 定义触发器: 1.名称 2.触发时间:是在执行事件之前(befor ...

  4. mysql忘记密码如何重置密码,以及修改root密码的三种方法

    1.先将MySQL停止. 命令:systemctl  stop mysqld       #停掉MySQL 命令:systemctl status mysqld         #查看状态 2.然后跳 ...

  5. python _str_方法

    _str_方法: 使用:如: class Car: def __init__(self,newWheelNum,newColor): self.wheelNum=newWheelNum self.co ...

  6. 使用RegisterPointerInputTarget时的一些注意事项

    RegisterPointerInputTarget :允许调用者注册一个目标窗口,指定类型的所有指针输入都重定向到该窗口. 要使用它必须使 UIAccess = true,见下图 在设置完之后,需要 ...

  7. VxLAN、PAE、Telemetry简介

    VxLAN VxLAN协议将  Ethernet帧  封装在UDP内,再加上8个字节的VXLAN header,用来标识不同的二层网络. VxLAN的角度看网络虚拟化:在一套物理网络设备上虚拟出多个二 ...

  8. N皇后问题的递归与非递归解法

    都在注释里了: public class NQueen { public static void main(String[] args) { Scanner sc = new Scanner(Syst ...

  9. 机器学习降维--SVD奇异值分解

    奇异值分解是有着很明显的物理意义,将一个比较复杂的矩阵用更小更简单的几个子矩阵的相乘来表示,这些小矩阵描述的是矩阵的重要的特性,让机器学会抽取重要的特征,SVD是一个重要的方法. 所以SVD不仅是一个 ...

  10. js 中使用typeof

    >typeof(null) <"object" 对null执行typeof预算,结果返回字符串'object',也就是说,可以将null认为是一个特殊的对象值,含义是“ ...