我有一个用Windows开发的项目,它使用了我的一些库(有时会使用另一个库),在Win中运行得很好。
现在我尝试在Astra Linux中运行它,遇到了一个奇怪的问题。
一个文件依赖看起来像(例子):
我有一个库 core.so,my.so和manager.so-〉manager usescore.somy.soand I can build this witout problems.然后我有一个使用www.example.com的主应用程序manager.so,我有这个警告:
libmy.so.1 needed by ***output_path***/libmanager.so, not found (try using -rpath)
一个错误:
undefined reference to my::my()
所有文件都存在(检查了100次,并已尝试将所有lib放在所有可能的文件夹中)!主要奇怪的是,我没有为www.example.com使用相同的问题,core.somanager.so以相同的方式使用,并且它位于相同的文件夹中。也许在Linux中使用libs链有任何细微差别?我提醒,在Win中,它工作得很好,这让我很困惑。
我试图配置所有的路径,但我有同样的问题所有的时间
1条答案
按热度按时间wljmcqd81#
嘿,这很有趣,但我找到了一个解决方案,破坏了我所有的计划。
问题是我必须在主应用程序中添加一个lib路径(即使我不使用它的任何类)。我在Windows中再次检查了它,它在应用程序中没有路径(在模块中添加路径就足够了)。所以,这意味着如果我更改了任何模块,我必须重新构建所有模块和应用程序:|
Idk,也许这些信息对任何人都会有用。