问题标签 [compiler-flags]
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++ - 从 boost::tokenizer 检索迭代器时 msvcp90d.dll 崩溃
当我检索 boost::tokenizer 的 begin() 迭代器时,我在 msvcp90d.dll 中遇到了一个崩溃,上面写着“ITERATOR LIST CORRUPTED”,这看起来很像我之前使用 _HAS_ITERATOR_DEBUGGING 编译器标志遇到的问题,但是我已验证我的程序是在关闭此标志的情况下编译的。
这是程序:
有趣的是,如果我用以下行替换标记器的实例化,它会起作用:
所以它似乎与ostringstream有关。有任何想法吗?
gcc - 构建 grep 比 Linux 自带的 grep 慢
我试图了解为什么我构建的 grep 比系统附带的要慢得多,并试图找出系统附带的 grep 使用了哪些编译器选项。
操作系统版本:CentOS release 5.3 (Final) 系统上的 grep:
我建立的grep:
在大型列表文本文件上运行正则表达式搜索时,系统 grep(330 毫秒)的性能比我构建的 grep(22430 毫秒)快得多。
以下是我用来计时的命令..
或者
系统 grep 显然正在使用一些优化选项,这些选项会产生巨大的性能差异。
一些机构可以帮助我构建系统 grep 的哪些选项?
这是我构建时其中一个源文件的编译选项..
gcc -DLIBDIR=\"/usr/local/lib\" -DHAVE_CONFIG_H -I. -I.. -I.. -I. -I../intl -g -O2 -MT xstrtol.o -MD -MP -MF .deps/xstrtol.Tpo -c -o xstrtol.o xstrtol.c
./configure 的输出:
谢谢,库马尔
python - 如何“从 python 脚本中导出 CFLAGS='my -flags -here'
我正在编写一个需要根据需要设置环境 CFLAGS 的 python 程序。
我正在使用 subprocess 模块执行一些操作,但是,我不确定这是正确的方法。
该脚本将首先设置 CFLAGS 然后编译一些代码,因此在编译代码时 cflags 需要保持不变。
我知道os.environ['CXXFLAGS']
我的系统中有默认为“”的。所以我的问题是,我只需要os.environ['CXXFLAGS']
在编译代码之前设置值,还是需要以其他方式进行?
请指教
visual-studio-2008 - Visual Studio C++ 编译器标志:-Zm200 是什么?
我使用 Qt 进行 C++ 开发,今天我从 .pro 文件生成了 .vcproj 文件。
我注意到在 vcproj 项目属性下,Qt 将此标志添加到 C/C++ -> 命令行 -> 附加选项中
什么是-Zm200?
c# - C# 中数字的编译器标记是什么?
C# 中数字的编译器标记是什么?这项工作的优势是什么?我无法理解这个概念。
c++ - 自动查找给定机器上最快 exe 的编译器选项?
有没有一种方法可以自动找到最好的编译器选项(在给定的机器上),从而产生最快的可执行文件?
当然,我使用g++ -O3
,但是还有一些额外的标志可以使代码运行得更快,例如-ffast-math
和其他标志,其中一些是硬件相关的。
有谁知道我可以在我的configure.ac
文件中放入一些代码(GNU autotools),以便命令自动将标志添加到 Makefile 中./configure
?
除了自动确定最佳标志之外,我还对一些有用的编译器标志感兴趣,这些标志可以很好地用作大多数优化的可执行文件的默认值。
更新:大多数人建议尝试不同的标志并根据经验选择最好的标志。对于该方法,我有一个后续问题:是否有一个实用程序列出了我正在运行的机器可能的所有编译器标志(例如测试 SSE 指令是否可用等)?
c++ - C++ -malign-double 编译器标志
我需要一些关于 c++ 中编译器标志的帮助。我正在使用一个库,它是从 Windows 到 linux 的端口,必须使用 -malign-double 标志编译,“为了 Win32 兼容性”。我的理解是这意味着我绝对必须用这个标志编译我自己的代码?其他 .so 共享库怎么样,是否也使用此标志重新编译了它们?如果是这样,有没有办法解决这个问题?
我是一个 linux 新手(和 c++),所以即使我尝试重新编译我用于我的项目的所有库,递归查找所有库和它们所依赖的库的源代码也太复杂了打开,然后重新编译所有内容。
编辑:感谢您的回答。一些背景知识:该库控制初始化和对 USB 连接相机的访问。问题是如果没有这个标志,奇怪的事情就会开始发生。看似随机,相机的初始化失败,USB连接错误。我还得到了堆栈上的几个 c 字符串(const char *)的某种内存损坏。基本上,在我调用这个相机的初始化之前,它们指向一个目录路径;初始化后,它们指向字符串“me”。这对我来说非常令人困惑。
c - 什么是“DNS_BLOCK_ASSERTIONS”(C 编译器标志)?
什么是“DNS_BLOCK_ASSERTIONS”(C 编译器标志)?
iphone - Xcode 中特定文件的特定编译器标志
我的任务是处理一个具有一些令人困惑的属性的项目。
该项目的性质是它不会为 iPhone 模拟器和具有相同编译设置的 iPhone 设备编译。我认为这与需要根据目标平台专门针对 x86 或 arm6/7 进行编译有关。
因此,在 Xcode 的 Build Settings 视图中查看项目的构建设置时,我无法为每个特定文件设置特定的编译器标志。然而,在这个项目上工作的前一位开发人员以某种方式宣布了这一行:
有没有办法在不手动编辑项目文件的情况下做到这一点?我知道编辑项目文件可能会导致完全破坏它,所以我宁愿不这样做,因为我显然不像以前的开发人员那样了解。
所以为了澄清,问题是:
编译模拟器时构建失败,除非我删除-fasm-blocks
标志。-fasm-blocks
除非我添加标志,否则编译设备时构建失败。有没有办法在不手动编辑项目文件的情况下为每个文件设置这个标志?
objective-c - GCC -fobjc-direct-dispatch 选项到底有什么作用?
GCC 手册说:
允许快速跳转到消息调度程序。在达尔文,这是通过 comm 页面完成的。
我可以假设这个标志消除了动态调度吗?它是如何工作的?如果直接链接,我相信它应该和 C 函数调用一样快。