macOS 10.11.6下gcc 4.9.2无法运行,编译及安装包遇阻求助
解决 macOS 10.11.6 + GCC 4.9.2 编译时
-lgcc 库找不到的问题 我之前在老版本macOS上也踩过这个链接错误的坑,给你几个亲测有效的解决思路:
1. 先确认GCC库文件的位置
首先得搞清楚你的GCC 4.9.2对应的库文件到底在不在,执行这条命令搜一下:
find /usr/local -name "libgcc*.a" -o -name "libgcc*.dylib"
如果能搜到类似libgcc_s.1.dylib或者libgcc.a的文件,那问题就是链接器没找到这个路径。编译单个C文件的时候,手动指定库的搜索路径就行:
gcc -L/你搜到的lib目录路径 -o 输出文件名 你的代码.c
比如搜到的路径是/usr/local/gcc-4.9.2/lib,那就把上面的路径换成这个。
2. 给./configure加参数适配
你说没法安装依赖gcc的./configure包,这时候直接给configure传LDFLAGS参数,让它知道去哪找库:
./configure LDFLAGS="-L/你搜到的lib目录路径"
要是还报头文件找不到的错,再加上CFLAGS指定头文件路径:
./configure CFLAGS="-I/你的gcc/include目录路径" LDFLAGS="-L/你搜到的lib目录路径"
3. 修复库的符号链接(谨慎操作)
老版本GCC在macOS上有时候会出现符号链接缺失的情况,你可以检查/usr/local/lib下有没有指向gcc库的链接。如果没有,手动建一个:
sudo ln -s /usr/local/gcc-4.9.2/lib/libgcc_s.1.dylib /usr/local/lib/
记得替换成你实际找到的库文件路径,而且需要sudo权限。
4. 用Homebrew重装适配的GCC
如果上面的方法都不管用,建议用Homebrew重新装一个适配macOS 10.11的GCC版本。不过你的系统版本比较老,得先装旧版Homebrew:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/legacy-install/install)"
然后装gcc4.9:
brew install gcc@4.9
装完之后记得用gcc-4.9命令编译,别用默认的gcc,避免和系统自带的clang搞混。
5. 临时应急方案
要是只是临时编译个简单代码测试,也可以试试去掉-lgcc参数,或者换成-lgcc_s:
gcc -o 输出文件名 你的代码.c -lgcc_s
这个方法不一定适合所有复杂项目,但能快速排查是不是参数的问题。
内容的提问来源于stack exchange,提问作者learner
相关产品推荐
相关产品推荐

