Gcc 添加定义和在CMake文件中设置有什么区别
我不太会做东西。我被CMake文件中的Gcc 添加定义和在CMake文件中设置有什么区别,gcc,makefile,cmake,g++,gnu-make,Gcc,Makefile,Cmake,G++,Gnu Make,我不太会做东西。我被CMake文件中的add\u定义和set弄糊涂了 比如说,, add_定义(-D_GLIBCXX_USE_cx11_ABI=0)和set(D_GLIBCXX_USE_cx11_ABI,“0”),有什么区别吗?我看到了不同的结果,但我无法理解 第二个问题:D\u GLIBCXX\u使用了什么\u cx11\u ABI 感谢您的帮助 非常感谢 为项目中的每个编译器调用添加定义(-D\u GLIBCXX\u USE\u cx11\u ABI=0)附加-D\u GLIBCXX\u U
add\u定义
和set
弄糊涂了
比如说,,
add_定义(-D_GLIBCXX_USE_cx11_ABI=0)
和set(D_GLIBCXX_USE_cx11_ABI,“0”)
,有什么区别吗?我看到了不同的结果,但我无法理解
第二个问题:D\u GLIBCXX\u使用了什么\u cx11\u ABI
感谢您的帮助
非常感谢 为项目中的每个编译器调用添加定义(-D\u GLIBCXX\u USE\u cx11\u ABI=0)
附加-D\u GLIBCXX\u USE\u cx11\u ABI=0
标志
set(D\u GLIBCXX\u USE\u cx11\u ABI,“0”)
只需将名为D\u GLIBCXX\u USE\u cx11\u ABI的CMake变量设置为0
。您可能看不到任何区别,因为在代码下面的某个地方,它被用作add\u definitions()
的值:
谢谢你的详细解释。我认为这是清楚的。关于第二部分,你知道D_GLIBCXX_USE_CXX11_ABI实际上改变了什么吗?我知道这个话题有点老了。但是,上面的标志指示编译器是否应该启用旧ABI。详情请参阅:
if(D_GLIBCXX_USE_CXX11_ABI)
add_definitions(-D_GLIBCXX_USE_CXX11_ABI=${D_GLIBCXX_USE_CXX11_ABI})
endif()