Fedora 27下Code::Blocks中SFML 2.4+Thor 2.0动态链接警告求助
解决Fedora 27下Code::Blocks中SFML 2.4与Thor 2.0动态链接的版本警告问题
嘿,我来帮你搞定这个警告问题!首先得搞清楚为啥会出现这个提示:你用的Thor 2.0是针对SFML 2.3编译的,但你现在系统里装的是SFML 2.4,链接器找不到Thor依赖的旧版本SFML库,所以才抛出警告。虽然现在编译成功了,但后续运行程序很可能因为库版本不兼容出问题,得彻底解决才行。
给你几个可行的解决办法,按优先级推荐:
1. 重新编译Thor 2.0适配你的SFML 2.4
这是最稳妥的方案,让Thor直接依赖你当前系统的SFML版本:
- 先下载Thor 2.0的源码(可以从它的官方仓库获取)
- 打开终端,执行以下命令编译安装:
# 克隆源码仓库(如果没git的话先装sudo dnf install git) git clone https://github.com/Bromeon/Thor.git cd Thor # 创建编译目录 mkdir build && cd build # 配置cmake,默认会自动识别系统里的SFML,如果你自定义安装了SFML,就加-DSFML_DIR=/你的SFML安装路径/cmake cmake .. # 编译并安装 make && sudo make install
编译完成后,重新在Code::Blocks里编译你的项目,警告应该就消失了。
2. 安装SFML 2.3版本(如果仓库支持)
如果Fedora 27的软件仓库里有SFML 2.3的开发包,可以直接安装来满足Thor的依赖:
sudo dnf install sfml-devel-2.3
不过要注意,这样系统里会同时存在SFML 2.3和2.4,后续开发其他项目时可能会有版本冲突,所以这个方案不如重新编译Thor来得干净。
3. 临时添加-rpath-link参数缓解警告
如果只是想临时消除警告,可以在Code::Blocks的链接器设置里添加参数:
- 打开项目的Build options -> Linker settings -> Other linker options
- 添加
-rpath-link /usr/lib
不过这只是治标不治本,运行时还是可能出现库加载失败的问题,不推荐长期用。
内容的提问来源于stack exchange,提问作者Rodri Pizarro
相关产品推荐
相关产品推荐

