2020-12-27

在龙芯Fedora28上编译 FlightGear 2019.1.1 时遇到 从输出所省略的额外重寻址溢出 错误,错误信息如下:

[ 98%] Linking CXX executable fgfs
CMakeFiles/fgfs.dir/__/Scripting/NasalCanvas.cxx.o:在函数‘to_nasal_helper(Context*, osg::BoundingBoxImpl<osg::Vec3f> const&)’中:
/home/loongson/下载/flightgear/flightgear-2019.1.1/src/Scripting/NasalCanvas.cxx:90:(.text+0x238): 截断重寻址至相符: R_MIPS_CALL16 针对 _Unwind_Resume@@GCC_3.0
/home/loongson/下载/flightgear/flightgear-2019.1.1/src/Scripting/NasalCanvas.cxx:84:(.text+0x28c): 截断重寻址至相符: R_MIPS_CALL16 针对 _Unwind_Resume@@GCC_3.0
CMakeFiles/fgfs.dir/__/Scripting/NasalCanvas.cxx.o:在函数‘f_createCanvas(nasal::CallContext const&)’中:
/home/loongson/下载/flightgear/flightgear-2019.1.1/src/Scripting/NasalCanvas.cxx:127:(.text+0x4e4): 截断重寻址至相符: R_MIPS_CALL16 针对 std::allocator<char>::allocator()@@GLIBCXX_3.4
/home/loongson/下载/flightgear/flightgear-2019.1.1/src/Scripting/NasalCanvas.cxx:127:(.text+0x508): 截断重寻址至相符: R_MIPS_CALL16 针对 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)
/home/loongson/下载/flightgear/flightgear-2019.1.1/src/Scripting/NasalCanvas.cxx:127:(.text+0x580): 截断重寻址至相符: R_MIPS_CALL16 针对 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()
/home/loongson/下载/flightgear/flightgear-2019.1.1/src/Scripting/NasalCanvas.cxx:127:(.text+0x594): 截断重寻址至相符: R_MIPS_CALL16 针对 std::allocator<char>::~allocator()@@GLIBCXX_3.4
/home/loongson/下载/flightgear/flightgear-2019.1.1/src/Scripting/NasalCanvas.cxx:127:(.text+0x5fc): 截断重寻址至相符: R_MIPS_CALL16 针对 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()
/home/loongson/下载/flightgear/flightgear-2019.1.1/src/Scripting/NasalCanvas.cxx:127:(.text+0x61c): 截断重寻址至相符: R_MIPS_CALL16 针对 std::allocator<char>::~allocator()@@GLIBCXX_3.4
/home/loongson/下载/flightgear/flightgear-2019.1.1/src/Scripting/NasalCanvas.cxx:127:(.text+0x634): 截断重寻址至相符: R_MIPS_CALL16 针对 _Unwind_Resume@@GCC_3.0
CMakeFiles/fgfs.dir/__/Scripting/NasalCanvas.cxx.o:在函数‘f_createWindow(nasal::CallContext const&)’中:
/home/loongson/下载/flightgear/flightgear-2019.1.1/src/Scripting/NasalCanvas.cxx:137:(.text+0x6d0): 截断重寻址至相符: R_MIPS_CALL16 针对 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string()@@GLIBCXX_3.4.21
/home/loongson/下载/flightgear/flightgear-2019.1.1/src/Scripting/NasalCanvas.cxx:137:(.text+0x7a4): 从输出所省略的额外重寻址溢出
collect2: 错误:ld 返回 1
make[2]: *** [src/Main/CMakeFiles/fgfs.dir/build.make:7427:src/Main/fgfs] 错误 1
make[1]: *** [CMakeFiles/Makefile2:2133:src/Main/CMakeFiles/fgfs.dir/all] 错误 2
make: *** [Makefile:163:all] 错误 2

大佬指点后得知需要添加cxxflag -mxgot 。最终解决如下:

CMakeList.txt 中添加一行(我添加在了第55行):

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mxgot")

重新 cmake && make 通过。

FlightGear 从输出所省略的额外重寻址溢出的更多相关文章

  1. 龙芯fedora28日常生存指南

    2021-01-30 v0.0.5 从0.0.1开始改了非常多,一月余时间的花费渴望为其他人提供一点帮助,能够快速上手. 这主要是这一年来我从3B1500到3A4000再到福珑2的日常使用记录,是之前 ...

  2. SMACH(五)----用户数据UserData类和重映射Remapper类的原理和例子

    用户数据UserData类和重映射Remapper类包含在smach中的user_data.py文件中实现,该博文主要介绍其原理和例子 UserData主要用于状态之间的数据传递,包括数据的输入inp ...

  3. Python 日志输出中添加上下文信息

    Python日志输出中添加上下文信息 除了传递给日志记录函数的参数(如msg)外,有时候我们还想在日志输出中包含一些额外的上下文信息.比如,在一个网络应用中,可能希望在日志中记录客户端的特定信息,如: ...

  4. (五)转载:通用定时器PWM输出

    1.     TIMER输出PWM基本概念 脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有 ...

  5. 关于C++中的重定位

    "标准库定义了4个IO对象,处理输入时使用命名为cin的istream类型对象,这个对象也成为标准输入.处理输出时使用命名为cout的ostream类型对象,这个对象也称为标准输出.标准库还 ...

  6. Python之向日志输出中添加上下文信息

    除了传递给日志记录函数的参数(如msg)外,有时候我们还想在日志输出中包含一些额外的上下文信息.比如,在一个网络应用中,可能希望在日志中记录客户端的特定信息,如:远程客户端的IP地址和用户名.这里我们 ...

  7. Perl输出复杂数据结构:Data::Dumper,Data::Dump,Data::Printer

    输出复杂结构 Data::Dumper.Data::Dump.Data::Printer都可以用来输出复杂的数据结构.本文只介绍简单的几个输出形式,以后再需要的地方再详细介绍. 前两者建议传递数据结构 ...

  8. 【转】Python之向日志输出中添加上下文信息

    [转]Python之向日志输出中添加上下文信息 除了传递给日志记录函数的参数(如msg)外,有时候我们还想在日志输出中包含一些额外的上下文信息.比如,在一个网络应用中,可能希望在日志中记录客户端的特定 ...

  9. 【刷题】LOJ 6014 「网络流 24 题」最长 k 可重区间集

    题目描述 给定实直线 \(L\) 上 \(n\) 个开区间组成的集合 \(I\) ,和一个正整数 \(k\) ,试设计一个算法,从开区间集合 \(I\) 中选取出开区间集合 \(S \subseteq ...

随机推荐

  1. Linux嵌入式学习-交叉编译openssl

    利用arm-none-linux-gnueabi-gcc交叉编译openssl,生成静态库文件libcrypto.a ,libssl.a 1.从openssl官网下载openssl最新版本,我下载的是 ...

  2. C语言实现汉诺塔

    汉诺塔 要把A柱子上的盘子移动到C柱子上,在移动过程中可以借助B柱子,但是要求小的盘子在上大的盘子在下. 解题思路: 1.把A柱子上的前N-1个盘子借助C柱子,全部移动到B柱子上(过程暂不考虑),再把 ...

  3. JavaDailyReports10_14

    1 package Test; 2 3 import java.util.Scanner; 4 5 public class Main { 6 7 public static void main(St ...

  4. java键盘输入方法-

    字符串缓冲方式 BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); String line = null ...

  5. 手写系列:call、apply、bind、函数柯里化

    少废话,show my code call 原理都在注释里了 // 不覆盖原生call方法,起个别名叫myCall,接收this上下文context和参数params Function.prototy ...

  6. 如何解决Renesas USB3.0RootHub警告

    打开WINDOWS系统的[计算机管理]-[服务和应用程序]-[服务]-点击[Portable Device Enumerator Service]服务,设置为启动类型:自动(延迟启动).并点击&quo ...

  7. HTML学习案例-仿慕课网网页制作(二)

    制作部分:网页footer部分 制作效果: 涉及知识:link部分要复习: dl- definition list dt- definition title dd - definition descr ...

  8. 项目实战--idea中使用Git遇到的坑

    问题 在一次代码的更新中,我按照以往的操作点,菜单中VCS下的Update Project,结果报错了,idea自动将我未提交的所有代码驻藏了stash了,全部代码还原了,心里慌了一下,去GitLab ...

  9. php 去除路由中index.php 通过 .htaccess 文件

    首先在入口文件index.php得的当前目录下 创建 .htaccess文件. 然后将下面一段代码放进去: <IfModule mod_rewrite.c> RewriteEngine o ...

  10. 【Flutter】功能型组件之导航返回拦截

    前言 为了避免用户误触返回按钮而导致APP退出,在很多APP中都拦截了用户点击返回键的按钮,然后进行一些防误触判断,比如当用户在某一个时间段内点击两次时,才会认为用户是要退出(而非误触).Flutte ...