标签: compiler-options

如何在GCC下强制'bool'的大小

我目前正在从另一个平台移植一些代码,新平台上的bool是1字节大小的.这会破坏我们的加载代码,因为值存储为32位值.此外,速度是我们平台上的一个关键问题,我们希望使用32位bool,因为处理器本身以32位运行,并且需要额外的操作来比较非32位bool.

有没有办法强制gcc使用32位bool而不是8位bool?

c++ gcc compiler-options

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

如何使用依赖于符号调试的参数定义函数?

我用-D编译器选项定义了一个符号debug:-DDEBUG_VALUE我是一个函数,其中一个参数的存在取决于符号调试标志的定义或更少.

即如果我定义了DEBUG_VALUE

my_function(int parameter1  ,int  my_parameter_dependant)
Run Code Online (Sandbox Code Playgroud)

除此以外

my_function(int parameter1)
Run Code Online (Sandbox Code Playgroud)

通过这种方式

my_function(int parameter1  #ifdef DEBUG_VALUE , int my_parameter_dependant #endif)
Run Code Online (Sandbox Code Playgroud)

我明白了

 error: stray ‘#’ in program
 error: expected ‘,’ or ‘...’ before ‘ifdef’
Run Code Online (Sandbox Code Playgroud)

我怎么解决?提前致谢!

(我在Unix系统上使用C++编译器)

c++ compiler-errors compiler-flags compiler-options c++11

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

NVCC 失败并显示错误““_GLIBCXX_MATH_H”未定义”

我正在编译一个 CUDA 程序 - 一个简单而无害的程序。无论我如何简化它或删除一些代码或包含文件,nvcc 都会告诉我:

In file included from /usr/local/cuda/bin/..//include/crt/common_functions.h:271:0,
                 from /usr/local/cuda/bin/..//include/common_functions.h:50,
                 from /usr/local/cuda/bin/..//include/cuda_runtime.h:115,
                 from <command-line>:0:
/usr/local/cuda/bin/..//include/crt/math_functions.h:8891:5: error: "_GLIBCXX_MATH_H" is not defined [-Werror=undef]
Run Code Online (Sandbox Code Playgroud)

我在 Linux 上使用 CUDA 9.0 或 9.1,而 CUDA 使用 GCC(5 或 6)。为什么会发生这种情况,我该如何解决?

cuda nvcc compiler-options

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

为什么默认情况下没有设置线程 Perl(使用 usethreads)?

根据安装文档

在某些平台上,perl 可以编译为支持线程。要启用此功能,请运行

sh Configure -Dusethreads
Run Code Online (Sandbox Code Playgroud)

默认情况下编译时不支持线程。

既然线程实现相当稳定,为什么它不是默认的构建选项呢?构建选项似乎至少由 Debian 和 Alpine Linux 设置。有什么充分的理由构建没有线程的 Perl 吗?线程化 Perl 的缺点是什么?

perl multithreading compiler-options

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

[c#]如何指定/ GS,c#应用程序的选项?

如您所知,/ GS 是Visual C++编译器或链接器选项.

  1. 我可以在c#编译器或链接器中指定/ GS吗?

  2. 这些标志是否在c#应用程序中默认启用?

    [编辑]:更改问题内容:

    2A.这些功能是否在c#应用程序中默认启用(通过Visual C++中的这些编译器选项)?

  3. 有没有办法找出使用这些标志构建.exe/.dll文件?

提前致谢.

c# compiler-options

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

C#CodeDom多个CompilerOptions

我想在CodeDom中添加多个CompilerOptions,但是我不知道该怎么做。

我目前正在尝试的是:

CompilerParameters cp = new CompilerParameters(referencedAssemblies, "executable file path", false);

cp.CompilerOptions = "/unsafe";
cp.CompilerOptions = "/t:winexe";
Run Code Online (Sandbox Code Playgroud)

问题是只有两个参数中的后一个被合并到输出可执行文件中。有什么方法可以将CompilerOptions参数添加为数组吗?

感谢您的任何帮助,

埃文

c# codedom compiler-options

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

为什么-XImplicitParams只能从命令行工作,而不是pragma?

为什么-XImplicitParams从命令行工作而不是OPTIONS_GHC pragma?

我发现ghc t.hs抛出一个parse error on input 'a'if t.hs包含以下代码,同时ghc -XImplicitParams t.hs工作正常.同上ghci.

{- OPTIONS_GHC -XImplicitParams -}
f :: (?a :: Int) => Int -> Int
f b = ?a + b
g c = f $ c+1
Run Code Online (Sandbox Code Playgroud)

haskell pragma ghc compiler-options language-extension

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

如果指定了模板参数,是否有C ++工具可以将模板类转换为实际类?

假设我有一个类似的模板类

template<class T> class Foo{
    T a;
    auto baz(){
        return 4.2f;
    }
};

int main(){
    Foo<int> bar;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

是否有一个工具可以将这段代码转换为实际的类,并提供如下输出:

class Foo{
    int a;
    float baz(){
        return 4.2f;
    }
};
// main goes below this line
Run Code Online (Sandbox Code Playgroud)

auto用推导的类型替换所有参数和模板参数的工具。

我当时正在使用模板,并且很好奇是否有这样的工具,因为它可能对学习类型推断有好处?

c++ templates compiler-options c++17

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

如何设置 C/C++ 编译器选项以对正在使用的 CPU 进行最佳优化?

要为特定 CPU 构建具有最佳优化的二进制文件,如何设置 C/C++ 编译器选项?例如,当功能可用时,尝试利用 MMX/3DNow!/SSE/SSE2/SSE3 等 CPU 功能。

c c++ compiler-optimization compiler-options

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

C++中的符号扩展是编译器选项,还是编译器相关或依赖于目标?

以下代码已在3个不同的编译器和3个不同的处理器上编译,并给出了2个不同的结果:

typedef unsigned long int u32;
typedef signed long long s64;
int main ()
{ u32 Operand1,Operand2;
  s64 Result;
  Operand1=95;
  Operand2=100;
  Result= (s64)(Operand1-Operand2);}
Run Code Online (Sandbox Code Playgroud)

结果产生2个结果: -5 或者4294967291

我明白操作(Operand1-Operand2)是以32位无符号计算完成的,然后s64在第一种情况下正确完成符号扩展,但第二种情况没有正确完成.

我的问题是符号扩展是否可以通过编译器选项进行控制,或者它是依赖于编译器还是依赖于目标.

c++ compiler-options

-3
推荐指数
1
解决办法
221
查看次数