我只是想知道如何正确地在vcpkg中使用类库?即
find_package(gtest REQUIRED)将失败但
find_package(GTest REQUIRED)将通过
我的意思是,如果我列出已安装的软件包,我会以小写字母获得它们,即
CMake suite maintained and supported by Kitware (kitware.com/cmake).
~/Proj$ cd vcpkg
~/Proj/vcpkg$ ./vcpkg list
fftw3:x64-linux 3.3.10#3 FFTW is a C subroutine library for computing the...
gtest:x64-linux 1.11.0#3 GoogleTest and GoogleMock testing frameworks
vcpkg-cmake-config:x64-linux 2021-12-28
vcpkg-cmake:x64-linux 2021-12-20因此,例如,如果我想添加fftw3,我如何才能知道是哪种情况呢?
find_package(fftw3必需)失败.
发布于 2022-01-22 19:21:08
假设您正确地将-DCMAKE_TOOLCHAIN_FILE=$HOME/Proj/vcpkg/scripts/buildsystems/vcpkg.cmake添加到您的构建中,那么您所观察到的内容与vcpkg无关。
find_package与您所在的文件系统一样区分大小写。在Windows上,gtest可能会正常工作,但真正的名字是GTest,所以只有这个名字可以在Linux上工作。类似地,fftw3包的名称是FFTW3。
Vcpkg也非常有帮助地告诉您:
$ ./vcpkg install fftw3:x64-linux
...
The package fftw3 provides CMake targets:
find_package(FFTW3 CONFIG REQUIRED)
target_link_libraries(main PRIVATE FFTW3::fftw3)
find_package(FFTW3f CONFIG REQUIRED)
target_link_libraries(main PRIVATE FFTW3::fftw3f)
find_package(FFTW3l CONFIG REQUIRED)
target_link_libraries(main PRIVATE FFTW3::fftw3l)
$ ./vcpkg install gtest:x64-linux
...
The package gtest provides CMake targets:
find_package(GTest CONFIG REQUIRED)
target_link_libraries(main PRIVATE GTest::gmock GTest::gtest GTest::gmock_main GTest::gtest_main)https://stackoverflow.com/questions/70811271
复制相似问题