Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为图书馆做检查_C++_Qt_Qt4_Qmake_Googletest - Fatal编程技术网

C++ 为图书馆做检查

C++ 为图书馆做检查,c++,qt,qt4,qmake,googletest,C++,Qt,Qt4,Qmake,Googletest,我将qt项目设置为subdirs项目,源代码在src目录中,单元测试代码设置在test目录中。每个项目都有自己的项目文件。我希望能够在其他计算机上编译源代码,但他们可能没有googletest库设置。我已经研究了qmake测试函数“requires()”和“packagesExist()”但是,它们似乎不是为处理外部库而构建的 如果找不到测试库,我如何指示qmake跳过测试项目?如果库存在于其中,则不检查典型位置是不可能的 不幸的是,googletest似乎也没有提供package config

我将qt项目设置为subdirs项目,源代码在src目录中,单元测试代码设置在test目录中。每个项目都有自己的项目文件。我希望能够在其他计算机上编译源代码,但他们可能没有googletest库设置。我已经研究了qmake测试函数“requires()”和“packagesExist()”但是,它们似乎不是为处理外部库而构建的


如果找不到测试库,我如何指示qmake跳过测试项目?

如果库存在于其中,则不检查典型位置是不可能的

不幸的是,googletest似乎也没有提供package config“.pc”文件,因此不能使用
packagesExist()
qmake函数

因此,我会使用一组
exist
调用来解决这个问题,或者从qmake切换到更好的方法,比如
cmake

!exists("/foo/bar/baz.so"):!exists("/hello/world/baz.so"):...: message("Google test is not installed on your system")

如果您试图链接到的库没有pkgconfig信息,则可以使用为每个库进行qmake config测试。我将在这里向您展示如何使用qmake的此功能

qtCompileTest qmake配置测试将在qmake时间运行。如果测试编译,config_u将被添加到config变量中,qmake将打印
检查。。。是
正在检查。。。否
取决于测试是否编译

在项目目录中,创建一个名为config_tests的目录,并在该目录下为要测试的库或功能创建一个目录,启动一个简单的qmake项目和main.cpp文件,最终如下所示:

myproject/
  myproject.pro
  <source files, etc>
  config_tests/
    googletest/
      googletest.pro
      main.cpp
在编译需要googletest的功能的地方,您可以将它们包装在以下qmake测试中:

CONFIG(config_googletest) {
}
CONFIG(config_googletest) {
}