在构建使用 cmake 的 RPMS 时修改编译器选项

在构建使用 cmake 的 RPMS 时修改编译器选项

我正在 Rocky 8 上构建一个在 Fedora 35 上运行良好的包。当我尝试使用 rpmbuild -ba 在 Rocky 8 上编译它时,出现错误:创建共享对象时不能使用重定位 xxxxx;使用 -fPIC 重新编译。

通常这很容易添加,但规范文件使用宏 %cmake 来构建项目。这个宏被扩展为有很多东西。其中定义了 CFLAGS 等。如何将我的 -fPIC 标志添加到这些内容中?可以使用“rpm -E %cmake”获得该宏,但如何添加非 -D 定义的其他标志并不明显。

答案1

我发现我可以将 -DCMAKE_POSITION_INDEPENDENT_CODE=ON 作为参数传递给 %cmake 宏。

相关内容