在gcc 7.3.0中找不到动态库符号

时间:2018-12-06 10:30:10

标签: c++ gcc

我们的C ++应用程序在Linux上运行并使用gcc编译,将动态库加载为“插件”。该代码已经很好地建立并且可以在gcc 5.3.1上正常运行。 但是,对于gcc 7.3.0,库加载在运行时失败。我们收到“找不到符号”错误,例如:

exec(login_button_click)

(带括号的符号名称位于括号中)。

gcc 7.3.0中是否有任何可能导致此问题的更改?

1 个答案:

答案 0 :(得分:0)

如果您可以直接跳转到C ++ 17,则可以将静态const int声明为constexprinline,编译器将使用外部链接(定义符号)来生成它。

在此之前,您可以选择在.cpp文件中显式提供符号,如下所示:

const int ChannelSelection::INVALID;