问题标签 [compiler-options]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 我如何理解 fdump-class-hierarchy 输出
我正在使用 fdump-class-hierarchy 编译器选项,但我不知道如何理解输出。“size”、“align”、“base size”和“base align”是什么意思,如何计算?谢谢!
当代码是:
输出是:
但是,如果我稍微改变一下课程:
输出将是:
visual-c++ - 如何在编译时验证 msvc 2010 c++ 项目中的编译器选项是否已正确设置?
我一直在玩 PDCurses 并且遇到了一些问题。最终我来到这里解决了我的问题。
基本上我的 PDCurses 项目是使用 UNICODE CHARACTER 集编译的。结果,块字符显示为大写 U。将库设置为 NOT SET 作为字符集解决了这个问题。
是否有一种技术可以让我在 PDCurses 的源代码中嵌入一些东西,以检测选择了哪个字符集选项,如果设置不正确,则执行编译时断言?
我查看了编译指示列表。一致性选项和运行时检查似乎做了类似的事情。
macos - 在 OS X 上使用 Clang 编译时如何增加堆栈大小?
我可以用 clang++ 指定堆栈大小吗?我找不到任何允许我这样做的编译器选项。我正在使用 OS X。
注意:这个问题专门针对 Clang,而不是 GCC 编译器。
java - Javac:无需注释即可编译的选项
javac是否有编译器选项可以在没有注释的情况下进行编译?
我知道:
-nowarn
: 不显示警告-g:none
:不生成调试信息
仍然会使用这两种方法生成注释。是否也有不生成注释的编译器选项?
“注释”是指编译器输出,例如:
我用javac 1.7.0_40
.
c++ - GCC pragma 在源文件中添加/删除编译器选项
我开发了一个跨平台库,它在套接字通信中公平地使用类型双关语。这个库已经在许多项目中使用,其中一些我可能不知道。
错误地使用这个库会导致危险的未定义行为。我想尽我所能确保这个库被正确使用。
当然,除了文档之外,在 G++ 下,我知道的最好的方法是使用-fstrict_aliasing
and-Wstrict-aliasing
选项。
在 GCC 下有没有办法在源文件级别应用这些选项?
换句话说,我想写如下内容:
MyFancyLib.h
有办法吗?
c - 哪些 gcc 选项可以减少代码大小?
我受到嵌入式 PowerPC 系统 128Kb 可执行文件大小的限制。不幸的是,由于我认为是编译器错误(由于未定义的引用和类似原因导致-Os
链接失败),使用优化大小的选项不起作用,而所有链接都很好。这是 gcc 4.8.1 host=i86, target=powerpc-wrs-vxworks。-Os
_restgpr_30_x
-O[123]
我的下一个想法是有选择地使用各种优化选项。但是这些选项中的哪一个会减少代码大小而不是执行时间?我继续单独使用一些选项,发现 -O2 除了
使用时减少代码大小。还有比实验更系统的方法吗?GCC 文档描述了各种选项,但没有说明它们是否更适合执行时间加速或代码大小减少。
clr - 发布配置的运行时库(静态库)
我在网上看过,有点明白,但想问一下以确定。
我将本机 c++ 包装器转换为 c++/CLI 项目,以便 VB.NET “看到”
我转换后的项目依赖于一个 fortran 静态库。
在调试配置中,我的 C++/CLI 项目使用多线程调试 DLL (/MDd),我的 fortran 静态库使用调试多线程 DLL (/libs:dll /threads /dbglibs)。我可以很好地编译。
在发布配置中,我有一些问题。我的 C++/CLI 项目使用多线程 DLL (/MD),我的 fortran 静态库使用多线程 DLL。这会导致一堆未解析的令牌(如unresolved token "extern "C" void __cdecl __CxxUnregisterExceptionObject(void *,int)"
)
如果我将 fortran 静态库更改为使用调试多线程 DLL,它工作正常。
我的问题:让 fortran 静态库在发布配置中使用调试多线程 DLL 是否不好?我认为调试开关应该只在调试配置中使用,但我不知道如何摆脱错误,否则......
c++ - 如何禁用缩小转换警告?
我使用-Wall
并更新到新的 gcc 我有很多warning: narrowing conversion
. 我想禁用它们,但保持所有其他警告不变(理想情况下)。
narrowing
我在http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html中什么也找不到
如何禁用缩小转换警告?有可能吗?
附言
我需要禁用警告,而不是在源代码中修复它们。
瞎了
-Wno-conversion
也没用。
c - 数据对齐编译器选项
我有下一个代码:
此代码在带有 x86 前处理器的系统上运行良好,但在 Blackfin 设备上失败。在 Blackfin 设备上发生错误。从错误消息的第一行是:
数据访问未对齐地址违规
我读到 Blackfin 处理器在没有与字长数据对齐的情况下无法工作。然后我尝试了下一个代码:
此代码适用于 x86 和 Blackfin 硬件。现在我有一个问题:是否存在不是从代码手动对齐数据的方法,而是通过例如编译器选项?
感谢您的关注!
gcc - 区分 gcc 诊断
我在解释 gcc (4.8.2) 警告和错误时遇到问题。更准确地说,很难分辨一个问题在哪里结束,另一个问题从哪里开始。我只能通过控制台访问构建机器,因此不能选择使用 IDE。
我真的需要能够快速区分个别问题。有没有办法让 GCC 在不同的诊断消息之间插入一些东西?
这是我得到的示例输出:
实际上,这还不算太糟糕,因为没有涉及宏扩展(我们也使用 Boost.Preprocessor)。尽管如此,很难一眼看出这个输出是关于两个问题的,第二个在最后 3 行,第一个占据了之前的整个文本墙。
有没有办法在它们之间插入一些分隔符?即使是空行也可以,您可以搜索或grep
搜索。
我已经阅读了关于 Options to Control Diagnostic Messages Formatting 的 GCC 文档,但我找不到任何东西。[
也不能用作搜索锚,因为并非所有消息都有一个(上面的第一个没有)。我没主意了。