【发布时间】:2019-07-12 13:02:48
【问题描述】:
我有一个创建共享库的项目。该项目使用 conan 来管理其依赖项,其中之一是 OpenCV。由于公司政策,我们不使用 opencv_world 并始终使用共享库,因此柯南安装了数百个 .lib 和 .dll 文件。
我正在开发的项目包括许多用于运行测试的可执行文件——单元、集成、配置文件等,但这些测试需要具有依赖项的 dll 的路径。我的问题是,如何管理这些路径?
有没有办法自动将文件的位置从柯南传递给 cmake?
我是否应该手动找到文件的位置并手动将它们传递给 CMake?
【问题讨论】:
-
您目前是否已经在使用CMake generator?
-
是的,但不知道它将如何为我提供 DLL 的路径。
-
库路径应该是生成目标的属性,因为编译器也需要这些路径。然后您可以使用
get_target_property提取路径。不幸的是,我手头没有柯南装置可供测试。 -
我需要将 DLL 本身复制到我的单元测试所在的同一文件夹中,否则它们将无法运行,如问题所述。
-
加载外部 dll-s 的单元测试不是单元测试。您应该使用依赖注入。集成/功能测试将所有内容作为一个整体运行,它们正在加载依赖项(dll)。