本文将探讨Allegro软件在导出ODB++文件时出现闪退的问题,并提供可能的解决方案和预防措施,帮助用户顺利进行设计工作。
二、基本介绍
前面提到,对于运行参数,gtest 提供了三种设置的途径:
1. 系统环境变量
2. 命令行参数
3. 代码中指定 FLAG
因为提供了三种途径,就会有优先级的问题。有一个原则是最后设置的那个会生效。不过总结一下,在通常情况下,比较理想的优先级为:
命令行参数 > 代码中指定 FLAG > 系统环境变量
为什么我们编写的测试案例能够处理这些命令行参数呢?是因为我们在 main 函数中,将命令行参数交给了 gtest,由gtest 来搞定命令行参数的问题。
```cpp
int _tmain(int argc, _TCHAR* argv[])
{
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
```
这样,我们就拥有了接收和响应 gtest 命令行参数的能力。如果需要在代码中指定 FLAG,可以使用 testing::GTEST_FLAG 这个宏来设置。比如相对于命令行参数--gtest_output,可以使用 testing::GTEST_FLAG(output) = xml:; 来设置。注意到了,不需要加 --gtest 前缀了。同时推荐将这句放置 InitGoogleTest 之前,这样就可以使得对于同样的参数,命令行参数优先级高于代码中指定。
```cpp
int _tmain(int argc, _TCHAR* argv[])
{
testing::GTEST_FLAG(output) = xml:;
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
```