gcc编译的时候,依赖库是有顺序的,越基础的库越要写在后面,因为它有可能出现这样的情况,B依赖于C同时A依赖于C,如果这样写gcc -o E B C A,则有可能造成C中的某些函数找不到在B中的实现,其原因可以在gcc的帮助里找到:
-l library
Search the library named library when linking. (The second alternative with the library as a separate argument is only for POSIX compliance and is not recommended.)
It makes a difference where in the command you write this option;the linker searches and processes libraries and object files in the order they are specified. Thus, foo.o -lz bar.o searches library z after file foo.o but before bar.o. If bar.o refers to functions in z, those functions may not be loaded.
就是指B依赖于C,B中使用的函数在C中找到之后,C中定义的其他的函数不被加载,所以此时链接A的时候,A中的某些依赖于C的函数就找不到了,因为没有加载的这些函数,正确的编译语句应该写成gcc A -o E B C.
如果不想繁琐地调整这些依赖顺序,那可以使用-Xlinker参数:
gcc -o E -Xlinker "-(" B C A -Xlink "-)"
分享到:
相关推荐
该资源是gcc升版本或降版本需要的资源,如果网络不可达直接下载该文件,放置同级目录下。
gcc编译依赖gmp、mpfr、mpc、isl四个库,mpfr依赖gmp,isl依赖gmp,而mpc依赖gmp和mpfr,因此安装gcc-7.3.0之前首先根据依赖关系依次安装四个库(软件版本:gmp-6.1.2,mpfr-3.1.5,isl-0.18,mpc-1.0.3,gcc-7.3.0...
在精简安装的AIX 7.1.0.0上安装gcc和依赖包,并编译nginx成功
内网离线环境下的gcc安装包及依赖。
Ubuntu20.04离线安装gcc9.3.0依赖包
unzip g++.zip cd g++ rpm -Uvh *.rpm gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC)
gcc完美离线安装包,以及包含的所有依赖包,一键安装gcc编译环境及其所需要的所有依赖。 CentOS6/7下gcc离线安装包,解决内网/内部云依赖gcc进行编译的问题。比如在没有互联网的情况下,进行nginx的编译和安装,其中...
内网环境,最小安装的服务器,直接丢进去在解压,在同目录运行脚本命令即可,系统(centos6.5 X64)
安装gcc需要的依赖文件
aix 7.1最小化安装的操作系统安装gcc,gcc-c++等编译环境的rpm安装包和依赖包,亲测在两台aix7.1小型机上编译nginx 1.12成功
这是gcc7.5的安装文件.ubuntu18.04自带的gcc是5.4的,现在很多源文件需要用更高版本的gcc才能编译通过,gcc编译依赖多个其他库文件,这里包含其他库文件的安装文件. 安装步骤如下:...
先安装gcc编译环境, 再安装依赖, 最后安装Nginx。 全部使用gcc目录下的文件即可,其他目录文件也是网上下载的,但是未安装成功。 1、安装gcc编译环境: cd /pkg/nginx/gcc rpm -ivh ppl-0.10.2-11.el6.x86_64....
这个问题的原因是b.cpp依赖a.cpp,gcc要求(实际是ld要求)libb.a须放在liba.a前面,即需要改成:g++ -g -o x x.o libb.a liba.a,也就是被依赖的库需要放在后头。 这是最常规的解决办法,除此之外,只需要加入--...
gcc 5.4.0版本及其相关依赖
gcc-4.8.5-28.el7.x86_64.rpm glibc-devel-2.17-222.el7.x86_64.rpm glibc-headers-2.17-222.el7.x86_64.rpm kernel-headers-3.10.0-862.el7.x86_64.rpm libmpc-1.0.1-3.el7.x86_64.rpm mpfr-3.1.1-4.el7.x86_64.rpm...
齐全的gcc安装依赖包
tar -xvf tar -xvf gcc-9.3.0_deb.tar 解压 解压后执行./install.sh libc6_2.31 manpages-dev_5.05 binutils-common_2.34 linux-libc-dev_5.4.0 libctf-nobfd0_2.34 gcc-10-base_10 libgomp1_10 libquadmath0 libmpc...
包含了gcc10的最新的源码(10.2.0)及依赖库,下载后可以直接编译、安装。一定要下载完三部分才可以解压,然后进行构建 : 详细的构建过程请参见:blog.csdn.net/lianshaohua/article/details/112599062
ubuntu基本的编译环境,gcc、make及build-essential,本资源提供了它们的离线安装包deb和所需要的依赖,只需要将其拷到离线电脑上,依次cd进入gcc、make、build-essential目录,执行'sudo dpkg -i *.deb'命令进行...
nginx1.24.0,包含GCC/zlib/prce依赖