标签: compiler-flags

以“tree”开头的 gcc 标志有什么特别之处?

以 开头的优化设置有很多tree。有些是:

-ftree-内置调用-dce
-ftree-ccp
-ftree-ch
-ftree-copyrename
-ftree-dce
-ftree-支配者-选择
-ftree-dse
-ftree-ter

这些旗帜有什么特别之处?

gcc compiler-flags

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

如何在RPG或CL程序中为激活组设置编译器选项?

有没有办法为程序源指定,在编译期间应该使用哪些激活组选项?

在as/400上的大多数程序中,我们需要更改激活组的处理(因为默认行为根本没有用...).每次我编的程序之一,我一定要记得设置编译器选项(这是在PDM:进入14,打F4,变化DFTACTGRP来自*YES*NO,打enter,变化ACTGRP*NEW或者*CALLER,这取决于程序).因此,我们在开始时有很多带有注释的程序,有大量的惊叹号,提醒程序员这样做.是的,有时候你会忘记.

有没有诀窍,所以你不必记住自己?

rpg compiler-flags rpgle compiler-options ibm-midrange

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

自动将 -fobjc-arc 标志添加到 Xcode 中创建的新文件中

我有一个使用 MRC 的 iOS 项目,但对于新源代码我想使用 ARC。如何设置项目以便-fobjc-arc为每个新文件添加标志?

更好的是针对特定目标单独设置它,因为该项目有 17 个目标,其中10 个使用 MRC7 个使用 ARC。是否有可能按目标设置文件创建,以便使用 MRC 的文件会添加该标志?

xcode compiler-flags target

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

sbt编译失败,选项不正确:'-warn-macros:after'

使用build.sbt文件,如:

ThisBuild / organization := "com.company"
ThisBuild / version := "1.0.0-SNAPSHOT"
ThisBuild / scalaVersion := "2.11.12"

Global / concurrentRestrictions += Tags.limit(Tags.Test, 1)

Global / scalacOptions ++= Seq("-Ypartial-unification",
                               "-unchecked",
                               "-Xfatal-warnings",
                               "-Ywarn-dead-code",
                               "-Ywarn-inaccessible",
                               "-Ywarn-unused",
                               "-Ywarn-unused-import",
                               "-Ywarn-macros:after")
Run Code Online (Sandbox Code Playgroud)

[error] bad option: '-Ywarn-macros:none'跑完了sbt clean compile

如果没有-Ywarn-macros:after,未使用的导入警告会在使用Circe宏的文件中引发虚假警告,例如:import io.circe.{ Decoder, Encoder }.

scala compiler-flags sbt scalac circe

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

使用 CMake 时处理编译器标志的正确方法

我正在努力寻找一种正确的方法来为所有目标传播正确的编译器标志。

假设有一个包含库和单元测试的项目。

ProjectFolder
|-WorkerLibFolder
  |-Worker.cpp
  |-Worker.hpp
  |-CMakeLists.txt  (2)
|-main.cpp
|-CMakeLists.txt (1)
|-TestsFolder
  |-UnitTests.cpp
  |-CMakeLists.txt  (3)
Run Code Online (Sandbox Code Playgroud)

在 CMakeLists.txt (1) 中,我想全局设置编译选项,因为我假设项目的所有库的优化级别和其他标志应该相同。 add_compile_options(-Wall -Werror -Wno-error=maybe-uninitialized)用来实现它。

我还使用CMAKE_BUILD_TYPE了在CMAKE_CXX_FLAGS_RELEASECMAKE_CXX_FLAGS_DEBUG标志的帮助下自动设置所需优化级别的功能。

此外,这些变量之一被隐式传递给编译器的事实似乎很烦人,因为无论如何我必须提前为所需的优化标志设置这些变量,set(CMAKE_CXX_FLAGS_RELEASE "-Ofast -DNDEBUG -DBOOST_DISABLE_ASSERTS")因为这-O3是默认设置的发布配置。

无论如何,直到我想-O0在编译测试环境 (UniTests.cpp) 时总是设置的那一刻,一切都很好。CMakeLists.txt (3) 生成 project_ut 可执行文件。我希望 WorkerLib 使用配置的优化级别(取自CMAKE_BUILD_TYPE)进行编译,但它自动意味着CMAKE_CXX_FLAGS_RELEASEwith-Ofast被传播到 UnitTest.cpp

我想我可能在这里做了一些奇怪的事情,并且有更好的方法来处理问题。这里的一个选择是在没有CMAKE_BUILD_TYPE功能帮助的情况下传递优化标志,但这似乎是错误的(因为我不想为每个目标维护标志列表)。

编辑:

#CMakeLists.txt(1):
cmake_minimum_required(VERSION 3.14.1)
project(TestProject LANGUAGES CXX C)

#####  common comp flags #####

add_compile_options(-Wall -Werror -Wno-error=maybe-uninitialized)

##############################

set(RELEASE_FLAGS "-Ofast -DNDEBUG -DBOOST_DISABLE_ASSERTS") …
Run Code Online (Sandbox Code Playgroud)

cmake build-system compiler-flags

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

“-flax-vector-conversions”对于 ARM 编译器到底意味着什么?

我正在尝试从 arm-linux-gnueabihf gcc/g++ 编译器编写 xxx.toolchain.cmake 。

让我困惑的是,我是否应该使用-flax-vector-conversions编译标志。我阅读了编译器的文档/手册页,它告诉我们:

-flax-vector-conversions

Allow implicit conversions between vectors with differing numbers of elements and/or incompatible element types. This option should not be used for new code.
Run Code Online (Sandbox Code Playgroud)

(通过https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html

我的两个困惑:

  1. 这个解释中的“向量”是什么意思?有没有例子可以说明这一点?

  2. “新代码”是什么意思?为什么“新代码”不应该与此编译选项一起使用?

c++ arm compiler-flags

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

用于iOS编译器定义的内容

我有以下代码,我想在Iphone OS上运行,我应该为IOS使用什么编译器标志,以及在下面的代码中应该插入哪些代码?谢谢

  #if defined(__BORLANDC__) || defined (__WATCOMC__) || defined(_MSC_VER) ||                 defined(__ZTC__) || defined(__HIGHC__) || defined(_TURBOC_)
 typedef  long  int   Word32   ;
 typedef  short int   Word16   ;
 typedef  short int   Flag  ;
 #elif defined( __sun)
 typedef short  Word16;
 typedef long  Word32;
 typedef int   Flag;
 #elif defined(__unix__) || defined(__unix)
 typedef short Word16;
 typedef int   Word32;
 typedef int   Flag;
 #elif defined(VMS) || defined(__VMS) 
 typedef short  Word16;
 typedef long  Word32;
 typedef int   Flag;
 #else
 #error  COMPILER NOT TESTED typedef.h needs to be updated, see readme …
Run Code Online (Sandbox Code Playgroud)

compiler-flags ios c-preprocessor

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

使用if子句而不是处理器#ifdef

我正在使用一个#ifdef块有条件地包含一个基于代码块 - Dflag传递给编译器.

有没有办法实现这个if

有点像:

if (defined(flag)) {

}
Run Code Online (Sandbox Code Playgroud)

c compiler-flags

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

无法在Xcode 5中添加编译器标志

您好我最近安装了Xcode 5,但无法添加编译器标志.我想为自动引用计数添加编译器标志但是当我去构建阶段=>编译sources => .m文件并双击它或在选择它时按Enter键时,不会出现输入编译器标志的弹出窗口.

如何解决这个问题?谢谢

compiler-flags xcode5

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

反应式扩展源代码中的NO_PERF标志是什么

在ReactiveExtensions源代码中,有大量代码在不同的实现之间切换,例如

https://github.com/Reactive-Extensions/Rx.NET/blob/master/Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/QueryLanguage.StandardSequenceOperators.cs

和一个片段

#if !NO_PERF
    return new Distinct<TSource, TSource>(source, x => x, EqualityComparer<TSource>.Default);
#else
     return Distinct_(source, x => x, EqualityComparer<TSource>.Default);
#endif
Run Code Online (Sandbox Code Playgroud)

这个标志的意图是NO_PERF什么,用它编译的库和没有它的库之间的行为有什么不同.

.net c# compiler-flags system.reactive

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