CentOS 7附带了Qt5.6,有办法升级到QT5.9吗?
目前的版本。
QMake version 3.0
Using Qt version 5.6.2 in /usr/lib64
我不想从qt.io安装Qt,因为我不打算开发应用程序,我试图运行的应用程序需要QT5.9中可用的QtQuick version 2.9。
在此之后,我尝试编译stdlib.so以将其他代码与其链接。不幸的是,stdlib.so本身是一个动态链接的二进制:
# ldd /usr/local/go/pkg/linux_amd64_dynlink/libstd.so
ldd: warning: you do not have execution permission for `/usr/local/go/pkg
/linux_amd64_dynlink/libstd.so'
linux-vdso.so.1 (0x00007ffd611d7000)
libpthread.so.0 => /lib64/lib
在Linux中,下载了一个程序源代码,并希望将其静态链接。我有一个很大的Makefile,我
./configure
make
编译。理解它有点太笼统了,但我如何才能使二进制文件静态链接呢?
编辑:这样做的原因是希望确保二进制文件不会有依赖关系(或者至少是尽可能少),这样就可以在任何基于Linux的计算机上运行,即使是没有Internet连接的计算机,也可以是未更新的Linux。
我在Ubuntu20.04中使用gcc 10构建了我的C++程序,然后在Ubuntu18.04中运行它,但不幸的是,得到的错误如下:
/opt/aspen/my: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /opt/my/myRenderer.so)
/opt/my/my: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /opt/my/libpython3.8.
我需要创建一个与尽可能多的发行版一起工作的可执行文件。我阅读了很多关于这方面的信息,我发现有两种方式:静态链接和动态链接。第一种解决方案避免了随可执行文件库一起使用,但它在许可证方面存在一些问题。第二种解决方案似乎更合适。通过动态链接,链接器将它需要的库的所有引用添加到可执行的ELF头中,操作系统在执行二进制文件之前加载这些库。
命令readelf -d <binary>显示所需的库:
Dynamic section at offset 0x149d80 contains 33 entries:
Tag Type Nam
我试着做一个尽可能可移植的可执行文件。删除了几个依赖项之后,在另一个系统上运行二进制文件时,我遇到了以下情况:
/lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.15' not found (required by foob)
/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.15' not found (required by foob)
/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (r