我有一个带有一个共享库的应用程序的项目设置,这一切都使用SUBDIRS项目很好地构建,应用程序依赖于共享库。使用QMake为'make check'设置PATH/LD_LIBRARY_PATH
TEMPLATE = subdirs
SUBDIRS = app1 app2 sharedLib
app1.depends = sharedLib
app2.depends = sharedLib
每个应用程序还包含一些测试,其中CONFIG += testcase
设置。
这会创建一个check
目标,因此我们可以使用make check
从顶级.pro运行所有单元测试。
问题是,某些应用程序测试需要在sharedLib中存在代码,因此需要根据每个平台库查找规则来发现它。
在Windows上,一个选项是在PATH
上有sharedLib位置,在linux上我们可以将sharedLib位置添加到LD_LIBRARY_PATH
,在mac DYLD_LIBRARY_PATH
上。
一种解决方案是运行make check
之前刚刚设置的内置共享库的位置:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:build/sharedDll/
make check
和工作原理,但似乎有点多余,因为它是构建脚本本身正在构建共享图书馆,让他们知道的路径sharedLib二进制文件的位置,这可以从.PRO/PRI文件内的被引用:
$$TOP_BUILDDIR/sharedLib/release
所以,反正是有从项目文件中设置PATH/LD_LIBRARY_PATH/DYLD_LIBRARY_PATH
为宗旨s的make check
命令?