我已按照链接 GTest 失败中描述的步骤进行操作,并收到此错误。
CMake Error in src/impl/data_structures/simple_tree/CMakeLists.txt:
Imported target "GTest::GTest" includes non-existent path
"~/local/include/"
Run Code Online (Sandbox Code Playgroud)
进一步的消息包括:
in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:
* The path was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and references files it does not
provide.
Run Code Online (Sandbox Code Playgroud)
编辑:虽然它失去了“通用性”,但我~/用完整路径替换了路径,然后收到此错误:
/usr/bin/ld: cannot find /home/myself/local/lib/: File format not recognized
Run Code Online (Sandbox Code Playgroud)
可以肯定的是,这条路是存在的。
在您链接的问题中,您暗示在find_package()哪里可以找到带有一些GTEST_*变量的 GTest。库变量应提供实际库文件的完全限定名称,而不是库的位置。当您仅提供路径时,FindGTest.cmake模块在包装导入的目标时会使用此路径作为实际库;这是不正确的。尝试将您的 CMake 修改为类似以下内容,然后从头开始重新运行 CMake:
# adding googletest
set(GOOGLETEST_PATH /home/username/local/googletest)
set(GTEST_INCLUDE_DIR /home/username/local/include/)
set(GTEST_LIBRARY /home/username/local/lib/path/to/libgtest.a)
set(GTEST_MAIN_LIBRARY /home/username/local/lib/path/to/libgtest_main.a)
find_package(GTest REQUIRED)
Run Code Online (Sandbox Code Playgroud)
就其价值而言,您确实不必在调用之前设置所有变量find_package()。您只需要按照此GTEST_ROOT答案中的建议进行设置即可。
| 归档时间: |
|
| 查看次数: |
14379 次 |
| 最近记录: |