gpt4 book ai didi

c++ - synology 交叉编译 gcc -std=c++0x

转载 作者:太空宇宙 更新时间:2023-11-04 12:00:37 27 4
gpt4 key购买 nike

我愿意编译一个需要 gcc 的 -std=c++0x 选项的程序,以使其执行 Synology x86 NAS 系统(Intel Atom)。我正在使用交叉编译工具链(synoroot 目录)。

$cat tst.cpp
tst.cpp:
int main() {
return 0;
}

$ gcc --version
gcc (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2

$gcc tst.cpp -std=c++0x --sysroot=/usr/local/synoroot -nodefaultlibs /usr/local/synoroot/lib/libc.so /usr/local/synoroot/lib/ld-linux.so.2 /usr/local/synoroot/usr/lib/libstdc++.so /usr/local/synoroot/lib/libm.so -o tst

$./tst && echo $?
0

关于群晖:

$./tst
Floating point exception (core dumped)

如果我使用工具链 gcc (i686-linux-gnu-gcc (GCC) 4.2.1),./tst 在 synology 上正确执行,但不支持 -std=c++0x。

那么我怎样才能成功执行和 C++0x 支持呢?

干杯

最佳答案

如果您的目标系统 (Synology) 与您的主机系统 (Ubuntu) 差异很大,需要交叉编译器,那么您只有两个选择:

  1. 获取支持您需要的新语言/库功能的更新的交叉编译工具链(可能从源代码自行构建)
  2. 重写应用程序,使其不需要 C++0x 功能。

关于c++ - synology 交叉编译 gcc -std=c++0x,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14279404/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com