使用另一个版本的 libc 编译
Compile with another version of libc
我尝试将我的 C++ 程序交叉编译为 armv5。仅仅通过armv5的交叉编译,i 运行 出现如下错误:
GLIBC_2.17 未找到(libstdc++、libdbus、libsystemd 和 liblzma 需要)
我发现,我的目标平台上的当前 libc 版本是 15。
1)有安全的更新方式吗?我在目标上没有 Internet 连接,只能通过 Telnet 连接。问题是,如果更新失败,我无法在设备上刷新一个新的 OS,我猜它坏了 99% ^^。
2) 如果 "no, not really" 为 (1),是否可以针对具有较新 运行ning 的 libc15 进行编译,或者是否有任何方法可以降级到 15? (创建一个用于编译的虚拟机,所以我不在乎是否有任何失败)
我必须指定什么才能针对另一个 libc 版本进行编译?,还没有找到正确的 flat/parameter...
感谢任何提示或想法,这个问题已经有一段时间了,我对 C++ 交叉编译还太陌生,无法找到任何解决方案。
最好的问候,
好的,对于遇到同样错误的每个人,这里是我的解决方案:
LD_LIBRARY_PATH/rpath 正在工作,请记住来自 ld-linux.so 的路径是硬编码的。因此,最好将所有库都放在 LD_LIBRARY_PATH 指定的文件夹中,否则可能会发生其他依赖性错误。
降级交叉编译工具链的方法也很有效,并在最后解决了整个问题(我 运行 到 "kernel too old error" 与 LD_LIBRARY_PATH 解决方案)但更棘手,特别是对于较旧的内核。此处为解决方案指定的 CXX:
CXX:= arm-linux-gnueabi-g++
CXXFLAGS:= -march=armv5 -msoft-float -mfloat-abi=soft -O3 \
-管道 \
-DPCAP_CREATE\
-std=c++1y -Wmissing-include-dirs \
-D_GLIBCXX_USE_NANOSLEEP\
-G \
-fno-deduce-init-list
所以我无法使用 C++11 或更高版本进行交叉编译,我怀疑它是否适用于带有 libc15 的 Armv5
此致
我尝试将我的 C++ 程序交叉编译为 armv5。仅仅通过armv5的交叉编译,i 运行 出现如下错误: GLIBC_2.17 未找到(libstdc++、libdbus、libsystemd 和 liblzma 需要) 我发现,我的目标平台上的当前 libc 版本是 15。
1)有安全的更新方式吗?我在目标上没有 Internet 连接,只能通过 Telnet 连接。问题是,如果更新失败,我无法在设备上刷新一个新的 OS,我猜它坏了 99% ^^。
2) 如果 "no, not really" 为 (1),是否可以针对具有较新 运行ning 的 libc15 进行编译,或者是否有任何方法可以降级到 15? (创建一个用于编译的虚拟机,所以我不在乎是否有任何失败) 我必须指定什么才能针对另一个 libc 版本进行编译?,还没有找到正确的 flat/parameter...
感谢任何提示或想法,这个问题已经有一段时间了,我对 C++ 交叉编译还太陌生,无法找到任何解决方案。 最好的问候,
好的,对于遇到同样错误的每个人,这里是我的解决方案: LD_LIBRARY_PATH/rpath 正在工作,请记住来自 ld-linux.so 的路径是硬编码的。因此,最好将所有库都放在 LD_LIBRARY_PATH 指定的文件夹中,否则可能会发生其他依赖性错误。 降级交叉编译工具链的方法也很有效,并在最后解决了整个问题(我 运行 到 "kernel too old error" 与 LD_LIBRARY_PATH 解决方案)但更棘手,特别是对于较旧的内核。此处为解决方案指定的 CXX:
CXX:= arm-linux-gnueabi-g++
CXXFLAGS:= -march=armv5 -msoft-float -mfloat-abi=soft -O3 \ -管道 \ -DPCAP_CREATE\ -std=c++1y -Wmissing-include-dirs \ -D_GLIBCXX_USE_NANOSLEEP\ -G \ -fno-deduce-init-list
所以我无法使用 C++11 或更高版本进行交叉编译,我怀疑它是否适用于带有 libc15 的 Armv5
此致