我最近升级了我的开发机器到Ubuntu 16.04
gcc的默认版本是gcc-5.3.1 。
我有一个供应商提供的库的问题只是使用gcc-4.9编译的,而gcc-4.9与gcc-5不兼容。
我已经要求供应商提供该库的新版本,但不太可能会很快发生。
x86-64 System V ABI在哪里logging?
x86 Linux与Windows?
为什么共享库的ELF标头指定Linux作为OSABI?
每个cpu arch真正的ELF TLS ABI要求是什么?
针对特定的glibc ABI
同时,我从Ubuntu的软件包仓库安装了gcc-4.9.3 。
我现在已经安装了gcc-4.9和gcc-5:
ls -l /usr/bin/gcc* lrwxrwxrwx 1 root root 5 May 9 11:49 /usr/bin/gcc -> gcc-5 -rwxr-xr-x 1 root root 838008 Apr 13 23:23 /usr/bin/gcc-4.9 -rwxr-xr-x 1 root root 915704 Apr 13 11:29 /usr/bin/gcc-5
我试图用gcc-4.9来构build我们的源代码,但是现在我遇到了相同的ABI问题,但是反过来也是如此。
我遇到的问题是,我们有一堆依赖,我们通常会从发行版软件包中安装它们
sudo apt-get install python-dev libbz2-dev libboost-all-dev libprotobuf-dev libgoogle-perftools-dev postgresql libpqxx-dev
虽然我可以configuration我的版本使用gcc-4.9
mkdir build && cd build CC=/usr/bin/gcc-4.9 CXX=/usr/bin/g++-4.9 cmake .. make -j8
现在我链接到libtcmalloc_minimal.a , libprotobuf.a等链接器错误
因此,我尝试的下一步是从发行版中删除所有安装的依赖项,并从源代码开始构build依赖项。
CC=/usr/bin/gcc-4.9 CXX=/usr/bin/g++-4.9 ./configure make -j8 sudo make install
这里的问题是,我开始低头一个兔子洞。 每个依赖项都有其他的依赖关系,我不确定它会在哪里结束。
另一个select是降级到Ubuntu 14.04或者某个版本,它随gcc-4.9而不是gcc-5发布。
在我尝试这个thurmonuclear选项之前,我想知道是否有更好的方法来做到这一点?
也许有可能从使用gcc-4.9构build的repos安装,或者其他方式?
你在哪里检查x86-64机器上的系统调用原型?
为什么工具链名称具有单独的操作系统和EABI字段?
Windows和ABI兼容性
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。