Linux下ld链接遇chdir/setlocale未定义引用,需链接库吗?
解决ld链接时
chdir/setlocale未定义引用问题 需要手动链接C标准库(libc)
chdir和setlocale都是GLIBC提供的C标准库核心函数,平时用gcc这类标准编译器编译链接时,会自动添加-lc参数链接libc,所以不会出问题。但直接调用ld工具时,链接器不会自动处理标准库的引用,因此会触发未定义引用错误。修复命令示例:
在你的ld链接命令末尾加上-lc选项,比如:
ld your_target_file.o -o your_program -lc
- 关于手册未标注链接说明的原因:
这类基础标准库函数的手册,默认用户是通过标准编译器(而非直接调用ld)来构建程序,标准编译器会自动处理库依赖,因此不会特意说明需要手动链接libc。
内容的提问来源于stack exchange,提问作者user21412139
相关产品推荐
相关产品推荐

