Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 是否可以在编译时将gcc编译标志检测为宏?_C++_Linux_Gcc_C Preprocessor - Fatal编程技术网

C++ 是否可以在编译时将gcc编译标志检测为宏?

C++ 是否可以在编译时将gcc编译标志检测为宏?,c++,linux,gcc,c-preprocessor,C++,Linux,Gcc,C Preprocessor,是否可以检查编译时是否将编译标志设置为gcc下的预处理器指令?更准确地说,我想检测是否设置了链接器标志?-rdynamic不是编译器标志,而是一个编译器标志。回想一下,gcc只是一个驱动程序,它启动编译器本身的cc1、汇编程序as、链接器ld等等。。。尝试将-v传递到gcc,以了解它的启动 我建议您在传递-rdynamic时,按照惯例向编译器传递一些适当的预处理器-Dwith\u rdynamic。这通常是一个make(即编写一些好的Makefile…) 您可能可以在生成的可执行文件上使用nm-

是否可以检查编译时是否将编译标志设置为gcc下的预处理器指令?更准确地说,我想检测是否设置了链接器标志?

-rdynamic
不是编译器标志,而是一个编译器标志。回想一下,
gcc
只是一个驱动程序,它启动编译器本身的
cc1
、汇编程序
as
、链接器
ld
等等。。。尝试将
-v
传递到
gcc
,以了解它的启动

我建议您在传递
-rdynamic
时,按照惯例向编译器传递一些适当的预处理器
-Dwith\u rdynamic
。这通常是一个
make
(即编写一些好的
Makefile
…)

您可能可以在生成的可执行文件上使用
nm-D
,检查它是否与
-rdynamic
链接。或者您可以(在程序内部)使用
NULL
路径,然后使用
dlsym(3)
一些符号,等等


我不明白为什么您真的需要检查
-rdynamic
:当需要时,您很快就会发现您错过了它

-rdynamic
不是编译器标志,而是一个。回想一下,
gcc
只是一个驱动程序,它启动编译器本身的
cc1
、汇编程序
as
、链接器
ld
等等。。。尝试将
-v
传递到
gcc
,以了解它的启动

我建议您在传递
-rdynamic
时,按照惯例向编译器传递一些适当的预处理器
-Dwith\u rdynamic
。这通常是一个
make
(即编写一些好的
Makefile
…)

您可能可以在生成的可执行文件上使用
nm-D
,检查它是否与
-rdynamic
链接。或者您可以(在程序内部)使用
NULL
路径,然后使用
dlsym(3)
一些符号,等等


我不明白为什么您真的需要检查
-rdynamic
:当需要时,您很快就会发现您错过了它

虽然我不能说绝对不,但我希望不会

使用以下命令查看gcc和g++编译器支持的预定义宏

  • gcc-dM-E-xc/dev/null
  • G++-DM -E-XC++ +DEV/NULL/
这可能也会有所帮助


虽然我不能说绝对不,但我希望不会

使用以下命令查看gcc和g++编译器支持的预定义宏

  • gcc-dM-E-xc/dev/null
  • G++-DM -E-XC++ +DEV/NULL/
这可能也会有所帮助


你为什么要问?为什么?请编辑您的问题以进一步解释。您为什么要问?为什么?请编辑你的问题来解释更多。我写了一个图书馆。我需要提醒任何使用它的人,无论何时他们忘记在编译时包含-rdynamic。请编辑您的问题以解释更多。如果缺少
-rdynamic
,为什么库的用户会不高兴?请准确解释原因(通过编辑和改进您的问题)!有一个我写的图书馆。我需要提醒任何使用它的人,无论何时他们忘记在编译时包含-rdynamic。请编辑您的问题以解释更多。如果缺少
-rdynamic
,为什么库的用户会不高兴?请准确解释原因(通过编辑和改进您的问题)!