You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fedora7下用mssqlodbc连接SQL Server的C程序编译错误解决

解决Fedora7下编译MSSQL ODBC程序时的GLIBC_PRIVATE符号未定义问题

以下是针对你遇到的__h_errno@GLIBC_PRIVATE和__mktemp@GLIBC_PRIVATE未定义错误的可行解决方法:

  • 调整链接库顺序
    gcc的链接器按从左到右的顺序解析依赖,原命令中-lc放在-lpthread前可能导致libpthread无法找到libc中的私有符号。修改命令,将-lc移到末尾,或者直接省略(gcc默认会自动链接libc):

    gcc -o prog prog.c -lpthread -lodbcinst -lodbc -lm -lc
    

    简化版:

    gcc -o prog prog.c -lpthread -lodbcinst -lodbc -lm
    
  • 验证libpthread的依赖一致性
    执行以下命令检查libpthread依赖的libc版本是否与你用nm验证的一致:

    ldd /lib64/libpthread.so.0
    

    如果输出的libc.so.6路径与你检查的路径不同,说明系统存在多版本libc,可临时调整LD_LIBRARY_PATH指向正确的libc目录,或编译时通过-L参数指定库路径:

    gcc -o prog prog.c -L/path/to/correct/libc -lpthread -lodbcinst -lodbc -lm
    
  • 添加链接器选项--no-as-needed
    Fedora7的链接器默认启用--as-needed,可能忽略某些间接依赖。添加该选项强制链接所需库:

    gcc -o prog prog.c -Wl,--no-as-needed -lpthread -lodbcinst -lodbc -lm
    
  • 确认依赖开发包完整性
    确保系统安装了匹配的glibc和pthread开发包:

    yum install glibc-devel.x86_64 pthread-devel.x86_64
    

内容的提问来源于stack exchange,提问作者Laurel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 21:30:55