zoukankan      html  css  js  c++  java
  • gcc static静态编译选项提示错误:/usr/lib/ld:cannot find -lc

    在学习gcc静态库动态库编译的时候选用静态库编译时出错显示:/usr/lib/ld:cannot find -lc

    百度:/usr/lib/ld:cannot find -lc多处给的解决方案为:

    然而并不能解决问题,最终定位发现是静态编译的问题。而且不止会出现这种情况:

    /usr/lib/ld:cannot find -lc

    /usr/lib/ld:cannot find -lgcc_s

    /usr/lib/ld:cannot find -lm

    等的错误,主要原因在静态编译时需要链接静调库。如上命令:

    [xiaohexiansheng@centos6 app]$ gcc -static -I./libs main.c -o app -L./libs -lcrypto -lfunc

    如果在编译时去掉-static选项选用动态库编译则不会出现此种情况

    [xiaohexiansheng@centos6 app]$ gcc -I./libs main.c -o app -L./libs -lcrypto -lfunc
    [xiaohexiansheng@centos6 app]$ ls
    app  libs  main.c

    非静态编译时ldd filename,显示如下,这是可执行程序所需的动态库,运行可执行程序时需要的动态库。

    [xiaohexiansheng@centos6 app]$ ldd app
            linux-gate.so.1 =>  (0x004ad000)
            libcrypto.so => /usr/lib/libcrypto.so (0x03ad9000)
            libfunc.so => not found
            libc.so.6 => /lib/libc.so.6 (0x0052a000)
            libdl.so.2 => /lib/libdl.so.2 (0x0070c000)
            libz.so.1 => /lib/libz.so.1 (0x00713000)
            /lib/ld-linux.so.2 (0x00508000)

    静态编译时需要将所有的.a库链接到可执行文件中,所以需要libc静态库文件,在系统找查找glibc-static提示没有库文件。

    #yum install glibc-static安装静态库。

  • 相关阅读:
    html JS 打开本地程序及文件
    [转]jquery mobile中redirect重定向问题
    kafka中broker、producer、consumer主要配置参数说明
    手写一个LruCache
    ES发布时max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 错误
    UML类图
    JVM调优总结
    JVM学习系列(五) 常见的JVM参数
    JVM学习系列(四) 相关概念
    JVM学习系列(三) 虚拟机监控相关
  • 原文地址:https://www.cnblogs.com/xiaohexiansheng/p/5500870.html
Copyright © 2011-2022 走看看