笔者在完成CSAPP的Malloc lab时,发生了编译错误,如下图。
初步估计是系统内置的编译器版本和CMU发布实验时用到的编译器版本有出入,因此尝试建立条符号链接来解决这个错误。
省流版,最后是使用下面这条命令解决了以上问题。
sudo ln -s /usr/include/x86_64-linux-gnu/asm /usr/include/asm
其实最开始我也是多番尝试未果,用的第一条符号链接是
sudo ln -s /usr/i686-linux-gnu/include/asm /usr/include/asm
结果并没有解决问题。这里要注意,如果你也是和我一样先把“/usr/include/asm”这个链接指向其他文件了,那发现无效后得及时删去这条链接。删除命令如下:
sudo unlink /usr/include/asm
如果不删除这个链接的话,由于最后我们得用“/usr/include/asm”指向正确的文件,所以就会出现一个链接想指向多个文件的错误,即
删除了旧的错误链接再用上面的命令即可。