Mac下Xcode开发c++的一些问题

c++大学基础课程水平,最近在用Xcode开发一个c++项目,遇到一些问题:
(因为我c++实在写得少水平又有限,也没怎么用过vs,大神勿喷)

1.我把项目添加到Xcode中去之后,貌似只要我运行有main函数的文件就会把所有的文件都会检查一遍,然后就报错不会运行,哪怕这些文件我并没有引入,有的时候我在写代码的过程中,需要看一下main函数的运行情况(参考结果来看接下来怎么写),我在写的文件并没有被引入,结果这个时候就会让我先把在写的文件debug掉,但是我需要看之前main函数的运行结果啊..于是陷入死循环...

2.第二个问题是有关catch测试库的,这个也是之前网上有前辈推荐我拿来用了,目前我发现我写了测试文件,哪怕我并没有引入这个文件,这个文件竟然也执行了。下面是详细过程:

我在项目根目录下建立了一个test文件夹下面有test1.cpp和test2.cpp:

test1.cpp内容如下:

#define CATCH_CONFIG_MAIN  // This tells Catch to provide a main() - only do this in one cpp file
#include "catch.hpp"
#include "iostream"
#include "BufferManager.hpp"

TEST_CASE( "Test Buffer Manager ", "[BufferManager]" ) {
  //some tests
}

test2.cpp的内容如下:

#include "catch.hpp"
#include "iostream"
#include "BufferManager.hpp"

TEST_CASE( "Test Buffer Manager 2 ", "[BufferManager2]" ) {
  //some tests
}

具体的测试代码是没有问题的,结果也符合预期,但是我得问题在于我并没有在test1.cpp的地方引入test2,但是为什么test2也跟着运行了呢。

这个造成的结果可能就是当测试文件比较多的时候我只是想运行某一个测试文件结果所有的 测试文件都运行了。。。

以上问题可能都比较蠢,但是希望有经验的朋友能来指点一二,感激不尽

阅读 3.8k
1 个回答

Xcode是要求project内的所有代码不能有Error才可以编译的,写到一半的代码当然会报错。
对于你的问题1,提供一个简单的方法,用预编译把未完成的代码注释掉。

// 文件开头
#if 0 

// your code

#endif
// 文件结尾
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题