标签: compiler-flags

如何将全局 CXX 编译器标志添加到 yocto 构建

这对我来说似乎很明显,但我找不到任何解决方案。假设我想添加或更改适用于所有 yocto 配方的编译器标志/选项。可以在某处添加全局标志而不更改配方?

compiler-flags yocto

6
推荐指数
2
解决办法
2万
查看次数

设置 pip 安装程序要使用的 C 编译器标志

我想在集群上创建一个包含一些 python 包的虚拟环境,其中有不同的英特尔处理器可用(例如 sandy bridge old和 haswell new)。必须从其中进行安装的登录节点是 haswell。

所以我:

pip install virtualenv
cd my_project_folder
virtualenv my_project
Run Code Online (Sandbox Code Playgroud)

如果我这样做,当我登录到沙桥并运行 python 时,我得到:

请确认操作系统和处理器均支持 Intel(R) MOVBE、F16C、FMA、BMI、LZCNT 和 AVX2 指令。

因为 python 可执行文件是使用仅适用于 haswell 节点的编译器标志创建的。我可以告诉 virtualenv 我想使用的 python 可执行文件:

virtualenv -p /usr/bin/python2.7 my_project
Run Code Online (Sandbox Code Playgroud)

但是当我

pip install numpy
Run Code Online (Sandbox Code Playgroud)

他找到并采用了它的haswell编译版本,它不会再次在沙桥拱上运行。

如何指示 pip 不使用使用 haswell 标志编译的包?

出于某些原因,我可以解释我无法使用沙桥处理器创建 virtenv。

python pip intel compiler-flags

6
推荐指数
0
解决办法
4012
查看次数

影响gcc中的功能克隆/复制/恒定传播

gcc使用optimizations-on 运行时,它会在认为函数处于热路径或传播到函数参数的常量时克隆(复制)C函数.

更具体地说,这似乎是由fipa-cp-clone选项控制的.

有没有办法影响这个?比如使用某个属性标记一个参数,作为编译时常量(就像你可以在带有模板参数的C++中那样),这将导致函数被克隆?

c optimization gcc compiler-flags

5
推荐指数
1
解决办法
788
查看次数

如何查看为C函数生成的汇编代码?

我需要查看为某些C函数生成的汇编代码,编译C代码时应该使用哪些标志?

编辑:使用G ++编译器,抱歉!

c assembly compiler-flags

5
推荐指数
2
解决办法
1万
查看次数

如何将默认的gcc选项推翻给链接器?

在我的系统上,当我编译一些东西(bfin-linux-uclibc-g++但是这是无关紧要的)时,我得到了数百个关于其中一个编译器标志的警告(不在我自己的代码库中).我想禁用它.

fde encoding in src/SpiMessageUtil.o(.eh_frame) prevents .eh_frame_hdr table being created.
Run Code Online (Sandbox Code Playgroud)

这是从默认的gcc标志开始的,它被移交给链接器,通过添加'-v'到编译步骤很容易检查:

COLLECT_GCC_OPTIONS=... --eh-frame-hdr ...
Run Code Online (Sandbox Code Playgroud)

我想摆脱这个选项,这确实是默认定义的:

bfin-linux-uclibc-g++ -dumpspecs | grep frame-hdr
%{!static:--eh-frame-hdr}\
%{mfdpic: -m elf32bfinfd -z text} %{shared} %{pie}   \
%{static:-dn -Bstatic}   %{shared:-G -Bdynamic}   \
%{!shared: %{!static:    %{rdynamic:-export-dynamic}    \
  %{!dynamic-linker:-dynamic-linker \
     %{mglibc:%{muclibc:%e-mglibc and -muclibc used together;:%e-mglibc not supported for this target};:/lib/ld-uClibc.so.0 \
}}}\
%{static}} -init __init -fini __fini
Run Code Online (Sandbox Code Playgroud)

我该如何覆盖此选项?我无法使用-Wl,--no-eh-frame-hdr,因为没有任何类似的定义.

gcc compiler-flags linker-warning

5
推荐指数
1
解决办法
1499
查看次数

CMake:在Visual Studio 2013项目中启用'/ arch:AVX2'

我正在尝试通过CMake在我的Visual Studio 2013项目上启用AVX2代码生成,到目前为止,我运气不好.

我尝试过的事情是:

  1. 设置CMAKE_CXX_FLAGS_*为包含/arch:AVX2如下:SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /arch:AVX2")
  2. 像这样设置目标属性:SET_TARGET_PROPERTIES("myproject" PROPERTIES COMPILE_FLAGS "/arch:AVX2").我也试过更换COMPILE_FLAGSCOMPILE_DEFINITIONS,COMPILE_FEATURES(无法生成项目)和COMPILE_OPTIONS.

每次我尝试生成项目时,我都会确保删除CMake缓存,这样就不会妨碍生成项目文件.

我错过了什么?任何有助于阐明这一点的帮助将非常感激.谢谢你的时间.

c++ cmake compiler-flags avx2 visual-studio-2013

5
推荐指数
0
解决办法
1748
查看次数

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

我一直在尝试编译一个我在网上找到的简单的多线程代码,以学习如何多线程.
要运行这段代码,我需要使用编译器标志:-pthread-std=c++0x.
但每当我尝试添加标志时,构建日志都不会显示它们被使用.

我已经尝试了一些在线的通用技巧,以使这些工作起作用,但它们都没有奏效.有人可以帮忙吗?

我已经尝试了在线的其他建议,以便为代码块添加编译器标志,但是当我这样做并检查构建日志时,它们都不会出现.

gcc codeblocks compiler-flags

5
推荐指数
2
解决办法
2万
查看次数

当班级违反三级规则时编译器警告(五)

当类破坏三阶规则(或五阶规则)时,是否可以触发编译器警告?

此功能听起来很容易实现,在安全关键软件中非常有用,但我无法在文档或Google搜索结果中找到它.

c++ gcc compiler-flags c++11

5
推荐指数
1
解决办法
375
查看次数

这些Kotlin编译器标志有什么区别?

有一段时间Kotlin允许设置kotlin.incremental=true,从1.1.2开始也有kotlin.compiler.incremental=true.

我想知道这两者有什么区别?

compiler-flags kotlin

5
推荐指数
1
解决办法
424
查看次数

有没有办法获得与PEFlags在运行时设置编译器标志相同的结果?

几年前,我C0000006 external exception在一些特定局域网上从共享文件夹运行一个大型(100 + MB)exe时偶然发现了.所以我开始使用这个问题中描述的编译器标志.

在数百个网络中的数百个客户多年成功"执行exe"后,我开始遇到PE标志的问题(不知何故,exe在同一台PC上启动时崩溃,一次排除一个原因,我根据经验发现评论这些标志工作).

不知怎的,我找到的解决方法是两次构建我的exe(并让客户选择部署哪一个),第一个用这些:

{$SetPEFlags IMAGE_FILE_NET_RUN_FROM_SWAP}
{$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP} 
Run Code Online (Sandbox Code Playgroud)

第二个评论那些.

这个建筑开销很烦人,我想避免它.我不认为有办法,但我要求专家建议:有没有办法"在运行时激活那些标志?" 例如,传递命令行参数?

我想到的另一个解决方法是在exe开始时本地复制exe,这样它总是从本地机器执行,但我担心我需要面对的场景,即使从技术上讲它很简单.

谢谢.

delphi compiler-flags delphi-10-seattle

5
推荐指数
1
解决办法
106
查看次数