添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
cmake_minimum_required(VERSION 3.14)
set(VCPKG_ROOT "D:\\vcpkg\\scripts\\buildsystems\\vcpkg.cmake") #设置使用vcpkg的路径
set(CMAKE_TOOLCHAIN_FILE ${VCPKG_ROOT})
project(testcode)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/install/)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR}/install/)
file(GLOB src_list_cpp ${CMAKE_SOURCE_DIR}/src/*.cpp 
                       ${CMAKE_SOURCE_DIR}/src/*/*.cpp
                       ${CMAKE_SOURCE_DIR}/src/*.c)
include_directories(${CMAKE_SOURCE_DIR}/include/ ${CMAKE_SOURCE_DIR}/src/)
set(CMAKE_PREFIX_PATH "D:\\OpenSourceFramework\\boost_1_76_0")#由于boost单独安装的,所以这里设置使用自己安装的boost来找库和头文件
#set(BOOSTROOT "D:\\OpenSourceFramework\\boost_1_76_0")
find_package(Boost QUIET)
if(Boost_FOUND)
    message(STATUS "boost include path is : ${Boost_INCLUDE_DIR}")
    message(STATUS "boost libraries is : ${BOOST_LIBRARIES}")
    message(STATUS "boost libraries dir is : ${Boost_LIBRARY_DIRS}")
    include_directories(${Boost_INCLUDE_DIR})
    link_directories(${Boost_LIBRARY_DIRS})
else()
    message(WARNING "boost not found.")
endif()
set(CMAKE_PREFIX_PATH "D:\\vcpkg\\installed\\x64-windows")#OpenSSL通过vcpkg安装,故这里再次设置vcpkg的安装库路径
find_package(OpenSSL QUIET)
if(OPENSSL_FOUND)
    message(STATUS "boost include path is : ${OPENSSL_INCLUDE_DIR}")
    message(STATUS "boost libraries is : ${OPENSSL_LIBRARIES}")
    message(STATUS "boost libraries dir is : ${OPENSSL_LIBRARY_DIRS}")
else()
    message(WARNING "openssl not found.")
endif()
add_executable(testcode ${src_list_cpp})
set_target_properties(testcode PROPERTIES 
	COMPILE_FLAGS "${WARNCXXFLAGS}"
	CXX_STANDARD 11
	CXX_STANDARD_REQUIRED ON)
#set(LIBS ${CMAKE_SOURCE_DIR}/bin/xxx.dll)
#add_custom_command(TARGET testcode POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${LIBS} ${CMAKE_SOURCE_DIR}/install/) #将项目中库拷贝到指定路径
target_link_directories(testcode PRIVATE ${CMAKE_SOURCE_DIR}/lib/ )
#target_link_libraries(testcode ${BOOST_LIBRARIES})
                                    (2) CMake 项目vcpkg | Microsoft Learn. https://learn.microsoft.com/zh-cn/vcpkg/users/buildsystems/cmake-integration.(4) 在CMake工程使用vcpkg提供的 - CSDN博客. https://blog.csdn.net/xiyangmo/article/details/119650550.来管理你的第三方依赖,并将它们集成到 CMake 项目。希望这对你有所帮助!
                                    简单CmakeList.txt内容cmake_minimum_required(VERSION 3.11)#引入vcpkg
set(CMAKE_TOOLCHAIN_FILE “${CMAKE_SOURCE_DIR}/vcpkg/scripts/buildsystems/vcpkg.cmake” CACHE STRING “”)
set(ENV{VCPKG_BINARY_SOURCES} “clear;default,readwrite”)project(ac-viewer)set(CMAKE_CXX_STA
1.vckpkg简介:
Vcpkg helps you manage C and C++ libraries on Windows, Linux and MacOS. This tool and ecosystem are constantly evolving; your involvement is vital to its success!
Vcpk...
                                    最后发现在CMakeLists.txt里面需要添加这样一行,这里是我本机的vcpkg路径,需要根据自己电脑安装位置填写。在使用vcpkg成功安装之后,使用cmake进行构建的时候一直提示找不到包,如下所示。test_vcpkg,.cpp 文件如下所示。我这里安装时调用的是。
                                    在开发c++项目时,我们个人都会使用Visual Studio来进行开发任务,VS对于项目的配置编译管理等无疑都是非常方便的,现在的VS版本也是非常的多,由于使用习惯或者项目环境需要,许多人也都在使用着不同的版本;这样当我们在多人协同工作时,可能会因为VS的版本不统一而导致工程的编译环境的改变而不能使代码进行统一的管理;
1.1. 传统使用开源的方法
Windows下开发C/C++程序,少不了编译开源的第三方。比如用于网络连接的高性能libcurl、用于压缩解压的zlib等等。使用这些开发极大的方便了程序员,使得我们不必重复造轮子。但是使用这些必须要处理以下问题。
1.1.1. 编译工具
由于这些开源绝大部分都来源于Linux系统,导致其工程文件、编译系统都使用gnu系列工具,使得将其移植到Windows的VC开发环境下一直是难点。尽管最近几年很多开源都支持了跨平台的cmak
                                    【CMakeCMake使用vcpkg
vcpkg是一个微软开源的C++包管理器。
在以前的开发,如果在项目需要使用某个开源,例如qt,我们需要取官网下载qt的源码,然后构建得到对应的,然后在项目链接这个。对于自己熟悉的还好说,若是不熟悉的,如何拉取源码?如何构建?如何在项目引用?等等这些问题通常会困扰我们,然而,大多数情况下,我们只是使用这个开源,并不需要关心这个的构建和编译等问题。如此,在以前的开发过程,往往会花费不少的时间在引入开源上。
vcpkg是在背景下开发出来的,通过