使用gcc 3.2.3链接使用g ++ 7.2编译的静态库

时间:2018-08-08 08:43:17

标签: c++ gcc

我有一个为gcc 3.2.3 1 编写的嵌入式应用程序,我想链接一个由我自己编写并使用g ++ 7.2.0编译的库。

我已经构建并链接了几乎没有代码的测试库,但是由于我正在尝试更相关的内容,因此我遇到了一些与未定义符号有关的问题。当前,我有以下几种错误:

  

__assert_func的未定义引用

如果我使用g ++ 3.2.3进行编译,则不会出现此错误。

我想使用g ++ 7.2.0来访问新的C ++ 14(也许是C ++ 17)功能以及标准库的某些新部分(std::chrono::duration等)。

有没有办法使这项工作有效?

我可以通过定义自己的__assert_func来解决上述问题:

extern "C" void __assert(const char *, int, const char *);

extern "C" void __assert_func(
    const char *file, int line, const char *, const char *e) {
    __assert(file, line, e);
}

...但是我想知道是否有更简单的方法?特别是,可能还会有其他名称更改,我不想每次都进行修改...

我假设我不会使用新功能,这些新功能需要的代码不是旧版gcc版本(例如std::threadstd::chrono::system_clock)。


相关:


1 该应用程序和库是使用sparc-rtems gcc工具链和某些第三方工具(例如JamaicaVM)构建的。我不能简单地更改用于构建主应用程序的工具链,因为与新的编译器工具链存在许多不兼容...

0 个答案:

没有答案
相关问题