2011-09-30 137 views
0

在学校我们使用Linux上的C++/g ++编译器来支持includelevel。这使我们可以编写一个应用程序,包括一个能够证明功能正常工作的主程序,然后将该文件包含在另一个程序中以使用它的功能。理论是,includelevel会在你包含的时候阻止代码,这样你就不会复制东西(比如有两条主线)。有没有办法让Visual Studio 2010识别includelevel?编译时,它只是表示有两条市电(其中有一条,但有一条被封锁),但无法编译。我一直在评论包含的代码,以便它在VS2010中编译,然后在推送到学校服务器(Linux)进行编译提交时取消注释。 例如: //文件:sort.cpp如何在Visual Studio 2010中支持includelevel

#include <iostream> 
using namespace std; 

void BubbleSort(int arr[], int numitems, int &bcost); 
    // Fancy sorting function description 


#if __INCLUDE_LEVEL__ < 1 
int main() 
{ 
    //fancy program that proves the sorting function works 
    return 0; 
} 
#endif 

void BubbleSort(int arr[], int numitems, int &bcost) 
{ 
    // Fancy sorting function code 
} 

---------------------------------------------------------- 

// file: myapp.cpp 

#include <iostream> 
#include "sort.cpp" 
using namespace std; 

int main() 
{ 
    //fancy application code that uses functions from the sort program 
    return 0; 
} 

回答

0

我相信你正在做的是写在同一个源文件,因为他们测试功能测试(S)。虽然这对于一个简单的程序来说可能非常方便,但一旦变得更加复杂,标准做法是将测试函数提取到单独的源文件中,并将其编译为单独的测试可执行文件(或者在某些情况下为DLL) 。

我之前使用过的一个简单结构是具有一个实现核心功能的库项目,另一个包含主函数并编译为“真实”程序的项目,并且有第三个项目包含测试和运行它们的主要功能。

包含另一个源/实现(.cpp)文件也是非标准的。

相关问题