Eclipse Indigo C ++项目设置

时间:2012-01-28 12:41:11

标签: eclipse preprocessor project-settings

我在Ubuntu中使用编译器 g ++ 4.6 创建了一个C ++共享库项目。
一些依赖库需要一些关于编译器和操作系统的预处理器命令来正确编译,比如

#elif defined(__GNUC__) || defined(__llvm__) || defined(__clang__)

然而 Eclipse 没有自动定义它们(至少我正在使用的版本),Eclipse中有一个设置或选项可以为我做这个吗?

1 个答案:

答案 0 :(得分:2)

您可以在项目属性中设置预处理器定义:project properties

但是,在您的情况下,我不会使用这些,因为它们不应该是项目特定的(因为它们是特定于编译器的)。我其实认为你在寻找这些。我不确定llvm / clang(有些,但我现在还不记得它们),但是对于GCC你应该使用宏__GNUC__,它将由编译器本身定义,而不是你有担心它。领先的下划线告诉您,它们不是标准的一部分,并且在使用其他编译器(例如MSVC)时未必定义。


对于vsprintf_s的跨平台使用:

// this will be set on Visual Studio only, so this code is added for all other compilers
#ifndef _MSC_VER
#define vsprintf_s(b,l,f,v) vsprintf(b,f,v);
#endif

但一般情况下,尝试使用所有平台上可用的函数(对于此示例,在这种情况下使用vsnprintf()代替)。

相关问题