linux 上的 vcpkg 工具链
vcpkg toolchain on linux
我只是想知道您是如何知道如何正确区分 vcpkg 中的库的?
即
find_package(gtest REQUIRED) 会失败但是
find_package(需要 GTest)将通过
我的意思是,如果我列出已安装的软件包,我会以小写字母显示它们,即
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 REQUIRED) 失败...
假设您正确地将 -DCMAKE_TOOLCHAIN_FILE=$HOME/Proj/vcpkg/scripts/buildsystems/vcpkg.cmake
添加到您的构建中,那么您观察到的内容与 vcpkg 无关。
find_package
与您所在的文件系统一样 case-sensitive。在 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)
我只是想知道您是如何知道如何正确区分 vcpkg 中的库的? 即
find_package(gtest REQUIRED) 会失败但是
find_package(需要 GTest)将通过
我的意思是,如果我列出已安装的软件包,我会以小写字母显示它们,即
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 REQUIRED) 失败...
假设您正确地将 -DCMAKE_TOOLCHAIN_FILE=$HOME/Proj/vcpkg/scripts/buildsystems/vcpkg.cmake
添加到您的构建中,那么您观察到的内容与 vcpkg 无关。
find_package
与您所在的文件系统一样 case-sensitive。在 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)