compiler-flags相关内容

有没有什么办法可以覆盖链接时隐藏的-fvisibility =?

我们正在使用第三方静态库,例如 A.a 用于android开发。我们将它作为共享库链接,并且它在一个应用程序中正常工作,但是当使用 B.so 来构建另一个 C.so , Aa 中的某些符号找不到。我们已经使用 -Wl, - export-dynamic 和 -Wl, - whole-archive 来构建 B.so 。我们使用 nm 来检查这些符号,它存在但列表为“t”而不是“T”,这意味着它是本 ..
发布时间:2018-04-21 11:29:43 移动开发

什么标志使GCC的文件结尾没有换行符的警告声音沉默?

我刚刚阅读了这篇文章,但是坦率地说,我的团队有几个人在不同的平台上工作,有几个不同的编辑人员(每个人都使用最好的套件),所以警告已经无处不在,并且它并不是一个值得关注的警告成为噪音,并使寻找严重警告麻烦。 很多时候重要的警告都没有被注意到,因为人们习惯了大量无用的警告通过,所以他们显然只是小心翼翼地停止看着他们,并且有理由恕我直言。我们可以说在我们的情况下,海湾合作委员会为了让任何人认真对待 ..
发布时间:2018-04-20 17:42:12 其他开发

在GCC中编译时使用`-Wextra`标志的缺点

我知道应该始终使用 -Wall 和 -Wextra 进行编译,因为它们会启用警告并帮助我们以了解我们的错误,如果有的话。 我读过 -Wextra 编译器标志不推荐因为它太冗长而带有很多误报。 我在阅读这本书时感到非常惊讶。所以我开始使用Google搜索,但是我没有得到任何答案,因为所有的搜索结果显示“什么是 -Wextra 标志?”。 所以,我的问题是 $ b 其中所有情况 ..
发布时间:2018-04-20 17:41:01 其他开发

GCC -fobjc-direct-dispatch选项到底做了什么?

GCC手册说: -fobjc-direct-dispatch 允许快速跳转到消息分派器。在 达尔文这是通过通信页面完成。 我可以假设这个标志消除了动态分派吗?它是如何工作的? 我相信它应该和C函数调用一样快,如果它直接链接的话。 解决方案 不,动态调度仍然存在(调用仍然通过 objc_msgSend 路由)。而且这个选项并没有在x86(-64)中引 ..
发布时间:2018-04-20 17:00:10 移动开发

矩阵/矢量运算的GCC优化标志

我正在执行使用C的矩阵操作。我想知道各种编译器优化标志是如何提高double和int64数据的这些矩阵运算的执行速度的 - 例如乘法,反算等。我不是在寻找手动优化的代码,我只想使用编译器标志使本地代码更快,并了解更多关于这些标志的信息。 目前为止发现的标志改善了矩阵代码。 -O3 / O4 -funroll-loops -ffast-math 解决方案 首先, ..
发布时间:2018-04-20 16:34:25 其他开发

如何在代码块上添加编译器标志

我一直在努力编译一个简单的多线程代码片段,我试图在线学习如何多线程。 要运行这段代码,我需要使用编译器标志: -pthread 和 -std = c ++ 0x 。 但是每当我尝试添加标记生成日志不显示他们正在使用。 我已经尝试了一些在线通用技巧来让这些工作起作用,但没有一个能够工作。有人可以帮忙吗? 我试过其他的建议,在代码块中添加编译器标志,但是当我这样做并检查构建日志 ..
发布时间:2018-04-20 16:26:44 其他开发

我如何强制gcc内联一个函数?

是否强制一个函数被gcc内联? 解决方案 __属性__((always_inline)) 是。 从文档 always_inline 通常情况下,除非指定优化,否则不会内联函数。对于inline声明的函数,即使未指定优化级别,该属性也会内联函数。 ..
发布时间:2018-04-20 15:45:40 其他开发

如何将gcc警告转储为结构化格式?

像许多人一样,我用大量的警告标志来构建我的项目。 由于并非所有警告标志都是有害的,汇编变得很嘈杂。 诸如“未使用的变量”,“初始化列表中的遮蔽成员”,“缺少开关默认值”等警告对于日志都很重要,但是在构建期间它们会造成太多混乱,并且很难发现重要的警告。 给定一个大型项目,可能会有成千上万的警告与构建语句混合在一起,而解析虽然后来变得繁重。在代码中维护编译器pragma和push / ..
发布时间:2018-04-18 20:46:21 C/C++开发

-msse,-msse2,-mssse3,-msse4 rtc ..的cflgs sse选项有什么不同?以及如何确定?

对于GCC CFLAGS 选项: -msse , -msse2 , -mssse3 , -msse4 , -msse4.1 , -msse4.2 。他们是独家使用还是可以一起使用? 我的理解是选择要设置哪个取决于程序将运行的目标拱,是否支持它,这是正确的? 如果是这样,我怎么知道我的目标拱支持什么?在Linux中,我使用cat / proc / cpuinfo,但是如果使用mac或Wi ..
发布时间:2018-04-18 20:35:31 其他开发语言

使用g ++制作静态库的优化和标志

我刚开始在Linux上使用g ++编译器,并在编译器标志上提出了一些问题。这里是他们 优化 c> -O1 , -O2 和 -O3 在g ++手册页中。我不明白何时使用这些标志。通常你使用什么优化级别? g ++手册为 -O2 。说明以下内容: 优化甚至更多。 GCC执行几乎所有支持的优化,不涉及空间速度折衷。当您指定-O2时,编译器不执行循环展开或函数内联。与-O相比,此选项增加 ..
发布时间:2018-04-18 20:34:17 C/C++开发

使用-O3或-Ofast编译您的基准测试代码或删除代码是否现实?

在编译 -O3 时的基准代码时,我对它在延迟中所做的区别留下了深刻的印象,所以我开始怀疑编译器是否通过去除“作弊”代码莫名其妙。有没有办法检查?我可以安全地使用 -O3 进行基准测试吗?预计速度提高15倍是否现实? 没有 -O3 的结果:平均值: 239 nanos Min:230纳米(900万次迭代) 结果 -O3 :平均值: 14 nanos, Min:12纳秒(900万次迭代) ..

使用g ++和-Og选项优化变量

当我使用 -Og 选项用 g ++ 编译我的C ++程序时,我看到的变量是 ,并且当前行有时会跳过。这种行为是否在这个优化级别预期,还是我有一些问题? gcc的手册页说: -Og 优化调试体验。 -Og 启用不会影响调试的优化。它应该是标准编辑 - 编译 - 调试周期的优化级别选择,提供合理的优化级别,同时保持快速编译和良好的调试体验。 因此我没有预料到这种行为。在我的系统 ..
发布时间:2018-04-18 20:31:35 C/C++开发

如何查看哪些标志-march = native会激活?

我正在使用GCC 4.3编译我的C ++应用程序。理论上我应该使用 -march = native 来手动选择优化标志,而不是添加适用于我正在编译的硬件的所有优化标志。但是我怎样才能检查它实际使用的是哪个标志?可以使用 -Q - > -help = target options: gcc -march = native -Q --help = target。 .. - ..
发布时间:2018-04-18 20:15:21 其他开发语言

如何在Visual Studio 2010中设置CUDA编译器标志?

在持续获得错误:标识符“atomicAdd”未定义后,我发现解决方案要使用 -arch sm_20 flag。但是如何通过这个编译器标志在VS 2010?我试过像 Project>属性: 但是这显然没有效果,错误仍然存​​在 - 我做错了什么? 解决方案 您可以在此对话框中选择GPU代码生成的选项: 在这种情况下,“compute_20”意味着我正在为虚拟计算架构2.0编译 - ..
发布时间:2017-03-04 11:36:19 其它硬件开发

在Eclipse中进行IDE范围的配置更改

我一直在Eclipse CDT中一些与GUI相关的项目。他们总是需要一个特定的命令行模式(Project> GCC C Linker),以便正确加载库: 我无法管理每个项目的配置。是否有办法实现这一点? 解决方案 IMHO是不可能的。请参阅 Windows>偏好设定> C / C ++构建> Setttings 未提供这些选项。 所有这些选项都是特定于项目的。对于不同的项目,您 ..
发布时间:2016-12-22 14:38:35 Java开发

gcc的-pg标志如何工作?

我想了解 -pg (或 -p )如何在编译C代码与 gcc 。 官方gcc文档只有状态: -pg 生成额外的代码以写入适用于分析程序gprof的概要文件信息。您必须在编译所需数据的源文件时使用此选项,并且您还必须在链接时使用它。 解决方案 编译时使用的工具 -pg 负责管理代码,以便 gprof 报告详细信息,请参阅 gprof手册,9.1实施分析 你的程序中的每个 ..
发布时间:2016-12-22 11:43:42 其他开发