标签: compiler-options

为什么不{$ ifopt FINITEFLOAT ON}编译?

我有结构:

{$ifopt FINITEFLOAT ON}
  {$message 'FINITEFLOAT option ON' }
{$else }
  {$message 'FINITEFLOAT option OFF' }
{$endif }
Run Code Online (Sandbox Code Playgroud)

在我的源码,它将无法编译!它必须是愚蠢的东西.错误是:

E1030编译器指令无效:'$ IFOPT'

在第一线,但它是抱怨的FINITEFLOAT.除了像R +等单字母指令作为IFOPT的参数之外,您似乎无法指定任何内容.

我在这里错过了什么吗?

delphi syntax-error delphi-2006 compiler-options

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

Visual C++编译器优化标志:/ O2和/ Ot之间的差异

/Ot标志("赞成快速代码")和/O2标志("最大化速度")之间有什么区别?

(同上/Os/O1.)

c++ compiler-optimization compiler-options visual-c++

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

类模块中断与未处理错误中断(VB6错误捕获,IDE中的选项设置)

基本上,我试图理解Visual Basic 6.0 IDE中以下路径中出现的"Break in Class Module"和"Break on Unhandled Errors"之间的区别:

Tools --> Options --> General --> Error Trapping
Run Code Online (Sandbox Code Playgroud)

这三个选项似乎是:

  • 打破所有错误
  • 打破课堂模块
  • 打破未处理的错误

现在,显然,根据MSDN,第二个选项(Break in Class Module)实际上只是意味着"打破类模块中未处理的错误".此外,此选项似乎默认设置(即:我认为它设置为开箱即用).

我想弄清楚的是,如果我选择了第二个选项,我是否可以免费获得第三个选项(Break on Unhandled Errors)?那么,它是否默认包含在类模块频谱之外的所有场景中?建议,我目前活跃的项目中没有任何类模块.我有.bas模块.另外,是否有可能通过Class Mdules他们可能也指正常的.bas模块?(这是我的第二个子问题).

基本上,我只是希望设置确保exe释放后不会有任何意外.我希望在开发时尽可能多地显示错误,并且在处于释放模式时不显示.通常,我的表单上有两种类型的On Error Resume Next,没有明确的错误处理,它们如下:

在错误恢复接下来'必须在错误恢复接下来'不是必需的

所需要的是,检查一个数组是否有任何长度,如果调用它的UBound错误,这意味着它没有长度,如果它返回值0或更多,那么它确实有长度(因此,存在).即使在我开发过程中,这些类型的错误语句也需要保持活动状态.但是,在我开发的过程中,不需要的那些不应该保持活动状态,因此我将它们全部注释掉以确保我能够捕获所有存在的错误.

一旦我准备好释放exe,我会按CTRL + H查找所有出现的:

'错误继续下一步'不需要

(您可能已经注意到它们被注释掉了)......并将它们替换为:

On Error Resume Next'不需要

...未注释的版本,因此在发布模式下,如果有任何剩余错误,它们不会向用户显示.

有关MSDN对三个选项的描述的更多信息(我已阅读两次但仍然找不到),您可以访问以下链接:

http://webcache.googleusercontent.com/search?q=cache:yUQZZK2n2IYJ:support.microsoft.com/kb/129876&hl=en&lr=lang_en%7Clang_tr&gl=au&tbs=lr:lang_1en%7Clang_1tr&prmd=imvns&strip=1

我也有兴趣听你的想法,如果你想做志愿者(这将是我的暂定/完全可选的第三个子问题,那就是你对后备错误处理技术的想法).

总结一下,前两个问题是,如果我们选择选项2,我们是否将选项3包含在所有非类场景中?而且,当他们使用术语"类模块"时,它们可能也指的是.bas模块吗?(因为.bad模块实际上只是一个在启动期间在后台预先实例化的类模块).

谢谢.

vb6 error-handling compiler-errors compiler-options visual-studio

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

交叉编译时是否有gcc选项可以打印目标三元组?

gcc -dumpmachine几乎是完美的,但它不尊重影响目标的旗帜.另一方面,clang确实:

$ gcc -dumpmachine
x86_64-unknown-linux-gnu
$ gcc -dumpmachine -m32
x86_64-unknown-linux-gnu
Run Code Online (Sandbox Code Playgroud)
$ clang -dumpmachine
x86_64-unknown-linux-gnu
$ clang -dumpmachine -m32
i386-unknown-linux-gnu
Run Code Online (Sandbox Code Playgroud)

gcc clang cross-compiling compiler-options

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

使用 GCC 调试标志(编译阶段/链接阶段)

我有一个这个Makefile

application=<somebinaryname>
CXXFLAGS=-g -std=c++14 -Wall -Werror -pedantic
LDFLAGS=-g

auto: $(application)

$(application): main.o aaa.o aab.o aba.o baa.o
        $(CXX) $(LDFLAGS) -o $@ $^

%.o: %.cpp
        $(CXX) $(CXXFLAGS) -c $< -o $@

# rest of Makefile not relevant to my question
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我-g选项是否应该在编译阶段(使用 CXXFLAGS)或链接阶段(使用 LDFLAGS)进行吗?我到处寻找示例和文档,但它们都有非常琐碎的示例,例如(甚至是联机帮助页):

gcc -g -o binary source.cpp
Run Code Online (Sandbox Code Playgroud)

我明白了,但这并没有告诉我太多。

对此还有更清楚的了解吗?

c++ gcc g++ debug-symbols compiler-options

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

如何从Visual Studio 2015中的非相对路径导入模块

我正在使用Visual Studio 2015中的gulp进行角度4项目.我Visual Studio 2015 QuickStart这里得到了它.

  • tsc版本:2.5.2

我的项目结构:

src
???angular
     ???common
           ???models
                ???items.ts
     ???ui
         ???components
                ???items.component.ts
Run Code Online (Sandbox Code Playgroud)

items.ts

export module items {
  export const listOfItems = [1,2,3];
}
Run Code Online (Sandbox Code Playgroud)

我想在导入src文件夹中的所有内容时使用非相对路径,即:

items.component.ts

import { items } from 'items';
Run Code Online (Sandbox Code Playgroud)

这是我的tsconfig.json文件(与...相同src):

{
  "compileOnSave": false,
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "lib": [ "es2015", "dom" ],
    "noImplicitAny": true,
    "suppressImplicitAnyIndexErrors": true,
    "typeRoots": [
      "node_modules/@types/"
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

在这里,我尝试将其添加到compilerOptions:

"baseUrl": …
Run Code Online (Sandbox Code Playgroud)

compiler-options typescript ecmascript-6 visual-studio-2015 angular

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

在Typescript中使用'--strictFunctionTypes'有什么好处?

据我了解,--strictFunctionTypesTypescript中的编译器选项阻止了一个非常常见的多态用例的工作:

type Handler = (request: Request) => Response

const myHandler: Handler = (request: Request & { extraArg: boolean }) => {
  return !!request.extraArg
}
Run Code Online (Sandbox Code Playgroud)

通常,我假设该系列中的所有编译器选项strict都具有很大的好处,但是在这种情况下,我所看到的只是它阻止了非常逻辑的行为。

那么,在什么情况下此选项实际上可以带来一些好处呢?它可以防止哪些有害情况?

interface strict compiler-options typescript

7
推荐指数
2
解决办法
1115
查看次数

Angular 6 / 在 tsconfig.lib.json 中声明库的路径

我正在尝试为Angular 6库配置路径(我已成功为以前的 Angular 项目配置了路径)

这是tsconfig.json文件中我以前的应用程序的工作:

"compilerOptions": {
    [...]
    "baseUrl": "src",
    "paths": {
      "@class/*": [ "app/class/*" ],
      "@services/*": [ "app/services/*" ],
      "@views/*": [ "app/views/*" ]
    }
}
Run Code Online (Sandbox Code Playgroud)

然后使用它,例如:

Import { Item } form '@class/item';
Run Code Online (Sandbox Code Playgroud)

在我的新应用程序中,我在tsconfig.**lib**.json文件中尝试相同的方式:

"compilerOptions": {
    [...]
    "baseUrl": "src",
    "paths": {
      "@class/*": [ "lib/class/*" ],
      "@services/*": [ "lib/services/*" ],
      "@views/*": [ "lib/views/*" ]
    }
}
Run Code Online (Sandbox Code Playgroud)

我试图像这样为我的库在组件中导入一个类,但它不起作用(VSCode 找不到该文件):

Import { Item } form '@class/item';
Run Code Online (Sandbox Code Playgroud)

请注意,import主项目中的语句正在起作用:

Import { Item } from 'myLibrary';
Run Code Online (Sandbox Code Playgroud)

知道我做得不好吗?

谢谢你的帮助。

path compiler-options tsconfig angular angular-library

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

在编译时访问最大模板深度?

在某个编译中,我需要使用-ftemplate-depth=N指定最大模板递归的选项。

是否可以从程序中获取最大模板深度的值?

gcc我对或感兴趣clang

$ c++ -ftemplate-depth=128 main.cpp

#include<iostream>
int main(){
  std::cout << MAX_TEMPLATE_RECURSION << std::endl; // hypothetical name
}
Run Code Online (Sandbox Code Playgroud)

c++ templates g++ compiler-options clang++

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

在 Android Studio 中使用 Kotlin 编译器选项进行测试源

在我的测试源中,我想使用一些实验性的 Kotlin 编译器功能,以便在 Android Studio 中看不到它们的 lint 警告和错误。例如,我想将以下 Kotlin 选项应用于所有测试源。

compileTestKotlin {
  kotlinOptions {
    freeCompilerArgs += [
        '-Xopt-in=kotlin.time.ExperimentalTime',
        '-Xopt-in=kotlinx.coroutines.ExperimentalCoroutinesApi',
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

来源

这在 Android 项目中是行不通的,因为没有compileTestKotlin方法。根据kotlin-android Gradle 插件文档,应该可以在块中编译VariantName Kotlin afterEvaluate,例如:

afterEvaluate {
  compileDebugUnitTestKotlin {
    kotlinOptions {
      freeCompilerArgs += [
        '-Xopt-in=kotlin.time.ExperimentalTime',
        '-Xopt-in=kotlinx.coroutines.ExperimentalCoroutinesApi',
      ]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

(和类似compileReleaseUnitTestKotlin

尽管这有效(构建和测试运行并顺利通过),但在 Android Studio 中似乎没有效果:实验性编译器功能的使用仍然标记有警告/错误。

如何为我的测试源启用这些编译器功能,以便 AS 识别和使用它们?

android compiler-options gradle kotlin android-studio

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