内容:
我有一个在MacOS12.6上构建的cpp程序,其中包含以下CMakeLists.txt文件。
cmake_minimum_required(VERSION 3.19.0)
project(cpp-test VERSION 0.1.0)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)
add_executable(cpp-test main.cpp)
add_library(test-helpers main.cpp ${PROJECT_SOURCE_DIR}/helpers.hpp)
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)
# this is super important in order for cmake to include the vcpkg search/lib paths!
set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" CACHE STRING "")
# find library and its headers
find_path(IXWEBSOCKET_INCLUDE_DIR ixwebsocket/IXWebSocket.h)
find_library(IXWEBSOCKET_LIBRARY ixwebsocket)
find_package(OpenSSL REQUIRED)
find_package(CURL REQUIRED)
# include headers
include_directories(${IXWEBSOCKET_INCLUDE_DIR} ${CURL_INCLUDE_DIR})
# Cmake will automatically fail the generation if the lib was not found, i.e is set to NOTFOUND
target_link_libraries(
${PROJECT_NAME} PRIVATE
${IXWEBSOCKET_LIBRARY}
OpenSSL::SSL
OpenSSL::Crypto
${CURL_LIBRARIES}
"-framework Foundation"
"-framework Security"
"-lz"
)
这编译得很好。但是,当我试图将它拉入我的Ubuntu虚拟机并试图构建它/build> cmake ..
时,我得到了以下错误
CMake Error in CMakeLists.txt:
Found relative path while evaluating include directories of "cpp-test":
"IXWEBSOCKET_INCLUDE_DIR-NOTFOUND"
CMake Error in CMakeLists.txt:
Found relative path while evaluating include directories of
"test-helpers":
"IXWEBSOCKET_INCLUDE_DIR-NOTFOUND"
-- Generating done
"我所做的一切"
- 我已经安装了vcpkg并创建了我的符号链接
ln -s /path/to/vcpkg /usr/local/bin/vcpkg
。 - 我已经通过
vcpkg install ixwebsocket
安装了ixwebsocket,但似乎没有正确解析CMAKE_TOOLCHAIN_FILE。
我有点迷路了,如果你能帮我
1条答案
按热度按时间bq3bfh9z1#
这不是一个很好的解决这个问题的方法,但是我最终通过CMake构建
ixwebsocket
来解决这个问题。看起来vcpkg与我的VM中的linux发行版不兼容。