对 lib (astra linux) 中类的构造函数的未定义引用

问题描述 投票:0回答:1

我有一个使用 Windows 开发的项目。它使用了我的一些库(有时使用另一个库)并且在 Win 中它工作得很好。

现在我尝试在 Astra Linux 中运行它,但遇到了一个奇怪的问题。

文件依赖关系看起来像(示例):

我有这些库:

core.so
my.so
manager.so
manager
使用
core.so
my.so
,我可以毫无问题地构建它。

然后我有一个使用

manager.so
的主应用程序,并且我收到此警告:

libmy.so.1 needed by ***output_path***/libmanager.so, not found (try using -rpath)

和一个错误:

undefined reference to my::my()

所有文件都存在(检查了 100 次并且已经尝试将所有 lib 放在所有可能的文件夹中)!主要奇怪的是,我对

core.so
没有遇到与
manager.so
以相同方式使用的相同问题,并且它位于相同的文件夹中。

也许 Linux 上使用库链有任何细微差别?我提醒一下,在 Windows 上,它运行得很好。

我尝试配置所有路径,但同样的问题。

linux qt qt5 shared-libraries datastax-astra
1个回答
0
投票

问题是我也必须在主应用程序中添加一个 lib 路径(即使我不使用其中的任何类)。我在Windows上再次检查了它,它在应用程序中没有路径的情况下也可以工作(在模块中添加路径就足够了)。所以,这意味着如果我更改了任何模块,我必须再次重建所有模块和应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.