有时候,当我使用g ++在GNU / Linux中用C ++开发时,我想进行更多的“详细”印刷。
例如,让我们在文件dummy.cpp
中有一段简单的代码:
#include<iostream>
#include<cstdlib>
#include<ctime>
int main(){
srand(time(NULL));
std::cout << "Enter a number:" << std::endl;
int num;
std::cin >> num;
int random = rand() % 10 + 1;
std::cout << "Debug: " << random << std::endl;
std::cout << "Result: " << num+random << std::endl;
return 0;
}
上面的代码可通过以下命令轻松构建:
$ g++ dummy.cpp
但是有时候我想在生产就绪版本中使用调试输出来“禁用”构建。因此,我虽然要使用预处理器ifdef
命令:
#include<iostream>
#include<cstdlib>
#include<ctime>
int main(){
srand(time(NULL));
std::cout << "Enter a number:" << std::endl;
int num;
std::cin >> num;
int random = rand() % 10 + 1;
#ifdef DEBUG
std::cout << "Debug: " << random << std::endl;
#endif
std::cout << "Result: " << num+random << std::endl;
return 0;
}
但是在构建期间是否可以通过终端将所需的DEBUG
标志/参数/所有内容通过终端传递到g++
中,以便将调试与生产构建分开?