Eclipse CDT:将带引号的字符串定义为预处理器定义 我有一个Eclipse CDT C++项目,它有一堆单元测试。测试需要访问我放在同一目录下data目录中的数据。我想使用预处理器define-Dtest\u data\u dir=”“来指定要使用的数据目录

Eclipse CDT:将带引号的字符串定义为预处理器定义 我有一个Eclipse CDT C++项目,它有一堆单元测试。测试需要访问我放在同一目录下data目录中的数据。我想使用预处理器define-Dtest\u data\u dir=”“来指定要使用的数据目录,c++,eclipse,eclipse-cdt,C++,Eclipse,Eclipse Cdt,由于eclipse中的错误,这看起来不起作用。鉴于此,实现这一目标的最佳方式是什么?我可以对数据目录的路径进行硬编码,但是如果源代码外版本找不到目录,我就会遇到问题。相关的bug报告提供了答案。因为我自己刚刚遇到了这个问题,谷歌首先把我带到了这里 答案是在单引号中转义双引号字符串。即: -Dtest_data_dir='"<path/to/data/dir>"' -Dtest\u data\u dir='“” Q:您尝试时发生了什么?问:您使用的是什么平台(Windows?Linu

由于eclipse中的错误,这看起来不起作用。鉴于此,实现这一目标的最佳方式是什么?我可以对数据目录的路径进行硬编码,但是如果源代码外版本找不到目录,我就会遇到问题。

相关的bug报告提供了答案。因为我自己刚刚遇到了这个问题,谷歌首先把我带到了这里

答案是在单引号中转义双引号字符串。即:

-Dtest_data_dir='"<path/to/data/dir>"'
-Dtest\u data\u dir='“”

Q:您尝试时发生了什么?问:您使用的是什么平台(Windows?Linux?),您使用的是什么版本的Eclipse和(大概)g++呢?它是OSX和Linux上的EclipseKepler。编译器是g++4.8。但问题是eclipse,特别是那个bug。所发生的事情正是链接错误报告中描述的。Eclipse从定义的字符串中去掉引号。