Qt:使用 -fPIC 或 -fPIE 编译代码

2023-12-22

/other/Qt5.0.1/5.0.1/gcc_64/include/QtCore/qglobal.h:1079:4: error: #error "You must build your code with position independent code if Qt was built with -reduce-relocations. " "Compile your code with -fPIC or -fPIE."

似乎所有组件都被正确读取,但弹出此错误。我需要在 CMAKE 中更改什么来纠正这个问题?

我把这些行放入CMakeLists.txt:

SET(CMAKE_CXX_FLAGS "-g -Wall")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}
   ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")

但这也不能解决问题。


您需要将目标构建为与位置无关的代码。您可以使用与编译器无关的方式来执行此操作POSITION_INDEPENDENT_CODE https://cmake.org/cmake/help/latest/prop_tgt/POSITION_INDEPENDENT_CODE.html.

The POSITION_INDEPENDENT_CODE属性决定是否创建位置无关的可执行文件或共享库。该属性默认为 TrueSHARED and MODULE库目标和False否则。该属性由以下值初始化CMAKE_POSITION_INDEPENDENT_CODE变量(如果在创建目标时设置)。

目标属性如下:

set_target_properties(your_target_name PROPERTIES POSITION_INDEPENDENT_CODE TRUE)

Note: 位置无关代码 https://en.wikipedia.org/wiki/Position-independent_code:

在计算中,位置无关代码 (PIC) 或位置无关可执行文件 (PIE) 是一组机器代码,放置在主内存中的某个位置,无论其绝对地址如何,都可以正确执行。 PIC 通常用于共享库,因此可以将相同的库代码加载到每个程序地址空间中的某个位置,该位置不会与正在使用的其他内存(例如其他共享库)重叠。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt:使用 -fPIC 或 -fPIE 编译代码 的相关文章

随机推荐

  • 数据流程图和流程图有什么区别?

    我想知道为什么我们使用数据流程图而不是流程图 流程图详细说明了流程跟随 DFD 详细说明了流程data通过一个系统 在流程图中 箭头表示元素之间的控制 而不是数据 转移 元素是指令或决策 或I O等 在 DFD 中 箭头实际上是元素之间的数
  • QImage 在 PNG 中设置 alpha 透明度

    我正在尝试在另一个图像上绘制图像 并且该部分有效 但在绘制覆盖图像之前我想降低它的不透明度 这就是我遇到麻烦的地方 我的叠加图像是PNG的 它们本身有透明区域 否则它们的内容是黑色的 在 Qt 中 我循环遍历每个像素 但无法确定像素是否透明
  • 下拉值未使用 ajax 传递到控制器

    我需要使用 ajax 将下拉列表中的值传递到控制器 但显然 这不起作用 该值显示为空 我需要传递的值 kodeCabang到控制器 我该如何做这份工作 HTML代码如下 div class dropdown div
  • 具有多种形式的 Django-TinyMCE

    我正在尝试创建一个包含多个 TinyMCE 编辑器实例的 HTML 页面 编辑的数量根据要求而变化 所以我无法枚举它们并单独初始化它们 这是我的代码 视图 py from tinymce widgets import TinyMCE cla
  • 将 ASP.NET vNext 应用程序部署到 Azure 云服务

    是否可以将 ASP NET vNext Web 应用程序部署到 Azure 云服务 如果是 那么它是构建在 aspnet50 还是 aspnetcore50 框架上有什么关系吗 Azure 云服务 Visual Studio 模板即使在 2
  • git 无法拉取远程更改

    由于以下错误 我无法从远程存储库中提取更改 我正在尝试从该存储库的主分支中提取数据 c supportal gt git pull error cannot lock ref refs remotes origin KANBAN unabl
  • Jaxb 解组不起作用

    我有这个 xml 文件
  • 如何为 iOS 分发创建 P12 证书

    我们有一款 iOS 应用程序 其推送通知证书已过期 我们正在尝试创建一个新的证书 我已在配置门户 ios developer cer ios distribution cer 中创建了新证书并下载了它们 我按照指示进行在 Stack Ove
  • 如何禁用 EditText 软件键盘上的“下一步”按钮(替换为“完成”按钮)

    我的 Android 应用程序中有一堆 EditText 每个 EditText 的 InputMethod 设置为 numberSigned 我的目标设备没有硬件键盘 而是使用软件键盘进行数字输入 Android 将输入框右侧的标准 完成
  • 如何在 swift 中 http 发布特殊字符

    我使用以下命令将电子邮件和密码发布到我的服务器 php 脚本 我遇到的问题是密码包含一个特殊字符 特别是 符号 似乎正在被剥离 我认为是因为它认为它的分隔变量被传递 我怎样才能传递这个字符而不剥离它 let myURL NSURL stri
  • scrapyd部署显示0个蜘蛛

    我正在使用 scrapy 进行项目 我运行了以下命令来部署项目 scrapy deploy l 然后我得到以下o p 刮刮网站http localhost 6800 cat scrapy cfg settings default scrap
  • List.Contains 返回 false,尽管看起来它应该返回 true

    Sub pageload Handles Me Load Dim bom As New List Of Car Dim car1 As New Car With Name Pea Year 2 Dim car2 As New Car Wit
  • 如何实现用户以安全的方式发布一些 html 格式的数据的可能性?

    我有一个textarea我想支持发布数据的一些最简单的格式 至少是空格和换行符 我怎样才能实现这个目标 如果我不逃避响应并保留一些 html 标签 那么这将是一个很大的安全漏洞 但我没有看到任何其他允许在浏览器中进行文本格式化的解决方案 所
  • 从 Assets 文件夹加载 CSS JS

    我已经花了几个小时寻找解决方案 虽然也有类似的情况 但我认为有点不同 我有一个正在加载到 webview 中的网站 setContentView R layout activity main WebView myWebView WebVie
  • 如何使用 FuncAnimation 通过 matplotlib 更新和动画多个图形?

    尝试创建一个程序来读取串行数据并更新多个图形 目前有 1 个折线图和 2 个条形图 但可能会更多 现在使用 3 个单独的 FuncAnimation 调用 但事实证明速度非常慢 这不好 因为我仍然需要在将来添加更多动画人物的选项 那么我怎样
  • 在 TypeScript 编译输出中保留许可证注释

    TypeScript 编译器提供了一个选项来删除或保留编译后的 JavaScript 输出中的注释 我需要的是能够删除所有注释 但保留包含许可证文本的文件开头的一个特定注释 我正在使用 node js 代码中的编译器 因此解决方案可以通过代
  • 为什么集合初始值设定项适用于仅 getter 属性?

    对我来说 这是非常不可预测的代码结果 我没想到这段代码会产生这样的结果 因此 我读了 Jeffrey Richter 的书 clr ia c 其中有一个包含此代码的示例 internal class ClassRoom private Li
  • CollectionViewSource.GetDefaultView 不在 Silverlight 3 中!有什么解决办法吗?

    The CollectionViewSource GetDefaultView 方法是not在 Silverlight 3 中 在 WPF 中我有这个扩展方法 public static void SetActiveViewModel
  • 使用 VS2010 构建 Compact Framework 应用程序(无需 VS2005)

    我想使用 VS2010 执行 NET CF 2 0 构建 我知道 正常 不支持它 但我看到了这个答案 NET Compact Framework 与 Visual Studio 2010 一起使用吗 https stackoverflow
  • Qt:使用 -fPIC 或 -fPIE 编译代码

    other Qt5 0 1 5 0 1 gcc 64 include QtCore qglobal h 1079 4 error error You must build your code with position independen