【发布时间】:2019-05-23 14:38:50
【问题描述】:
我目前正在交叉编译 tensorflow r1.9。宿主系统是ubuntu 18.04,目标系统是sw26010(一个基于alpha指令集的中文CPU)。交叉编译器基于 GCC 5.3。
由于某些操作系统限制,我必须将所有库静态链接 到 tensorflow。 libstdc++.a 和 libpthread.a。包括在内。
经过一些配置,我可以成功编译所有目标文件。 (将“//conditions:default”:[],添加到nsync BUILD文件,并将sw2 CPU宏添加到双重转换BUILD文件)。但是,我无法成功链接所有库文件和目标文件。
这是错误信息。
/home/qh5/swgcc530/gcc-5.3.0/libstdc++-v3/src/c++98/ios_init.cc:140:(.text._ZNSt8ios_base4InitD2Ev+0xf4):重定位被截断以适应:GPREL16反对符号`std::wcerr' 在 /usr/sw-mpp/swcc/swgcc530-tools/usr/sw_64sw2-unknown-linux-gnu/lib/libstdc++.a(globals_io.o) 的 .bss._ZSt5wcerr 部分中定义
这是用于 tensorflow bazel 的 CROSSTOOL。 CROSSTOOL on hastebin 我尝试使用 compiler_flag: "-msmall-data" 和 compiler_flag: "-fpic" 修复错误,但失败了。
【问题讨论】:
标签: tensorflow gcc bazel