栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

windows c++ 包管理 vcpkg clion

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

windows c++ 包管理 vcpkg clion

安装VCPKG

git clone https://github.com/microsoft/vcpkg
.vcpkgbootstrap-vcpkg.bat

使用以下命令安装您的项目所需要的库:

.vcpkgvcpkg install [packages to install]

您也可以使用 search 子命令来查找vcpkg中集成的库:

.vcpkgvcpkg search [search term]

若您希望在 Visual Studio 中使用vcpkg,请运行以下命令 (首次启动需要管理员权限)

.vcpkgvcpkg integrate install

在此之后,您可以创建一个非cmake项目 (或打开已有的项目)。 在您的项目中,所有已安装的库均可立即使用 #include 包含您需使用的库的头文件并无需添加额外配置。

特别地,报以下错误居然导致也不能用vcpkg安装lib:

Warning: The following VS instances are excluded because the English language pa
ck is unavailable.

C:Program Files (x86)Microsoft Visual Studio2017Professional

vcpkg 按他说的,少英文语言包,到VS2017安装向导,修改安装,点语言包,勾选英语;再去安装第三方库,发现OK了…;

镜像

set X_VCPKG_ASSET_SOURCES=x-azurl,http://106.15.181.5

加速

当前 shell 的代理
$env:HTTP_PROXY=“http://127.0.0.1:1080”

在clion 中导入用vcpkg安装的包

vcpkg安装的时候最好选择64位,比如.vcpkg.exe install assimp --triplet x64-windows
在clion 的cmake option 中加入CMAKE_TOOLCHAIN_FILE=F:/paperanddata/vcpkg-master/vcpkg-master/scripts/buildsystems/vcpkg.cmake

在clion中使用msvc编译器

cmakelist 编写

其中assimp和tinyxml2是用vcpkg安装的包
用set(Qt5_DIR "D:/QT/5.12.3/msvc2017_64/lib/cmake/Qt5")加入QT5的路径

# 设置 CMake 的最低版本要求
cmake_minimum_required(VERSION 3.14 FATAL_ERROR)
#set(CMAKE_TOOLCHAIN_FILE F:/paperanddata/vcpkg-master/vcpkg-master/scripts/buildsystems/vcpkg.cmake)


#set(BUILD_USE_64BITS on)
# 设定项目
project(UEngine VERSION 0.1)
message(STATUS "[Project] ${PROJECT_NAME}")

# 修改默认的安装路径前缀
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
  set(CMAKE_INSTALL_PREFIX ${PROJECT_SOURCE_DIR} CACHE PATH "install prefix" FORCE)
endif()

# 在 Debug 模式下自动对 dll 和 lib 文件名后边加 d,但 exe 仍然需要手动设置
set(CMAKE_DEBUG_POSTFIX d)

# 确定 C++ 版本
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)




set(Qt5_DIR "D:/QT/5.12.3/msvc2017_64/lib/cmake/Qt5")


if(MSVC)
    #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /permissive- /Zc:twoPhase-")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /permissive-")
endif()

# 将生成的 exe, dll, lib 等放置在 bin, lib 目录
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/bin")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${PROJECT_SOURCE_DIR}/bin")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${PROJECT_SOURCE_DIR}/bin")
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/lib")
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${PROJECT_SOURCE_DIR}/lib")
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${PROJECT_SOURCE_DIR}/lib")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/lib")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${PROJECT_SOURCE_DIR}/lib")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${PROJECT_SOURCE_DIR}/lib")

# 开启 VS 的文件夹功能
set_property(GLOBAL PROPERTY USE_FOLDERS ON)

include(FetchContent)


find_package(UCMake)
if(${UCMake_FOUND})
	message(STATUS "UCMake-0.1 found")
else()
	message(STATUS "UCMake-0.1 not found, so fetch it ...")
	FetchContent_Declare(
	  UCMake
	  GIT_REPOSITORY https://github.com/Ubpa/UCMake
	  GIT_TAG "v0.1"
	)
	FetchContent_MakeAvailable(UCMake)
	message(STATUS "UCMake-0.1 fetch done")
endif()

# 修改默认的安装路径前缀
Ubpa_InitInstallPrefix()

Ubpa_AddDep(UTemplate 0.1)
Ubpa_AddDep(UDP 0.1)
Ubpa_AddDep(UGM 0.1)
Ubpa_AddDep(UHEMesh 0.1)

Ubpa_QtInit(COMPonENTS Core Gui Widgets OpenGL)

message(STATUS "----------")
find_package(assimp  REQUIRED)
if(TARGET assimp::assimp)
	message(STATUS "assimp_FOUND: ${assimp_FOUND}")
	message(STATUS "assimp_DIR: ${assimp_DIR}")
	get_property(assimp_INTERFACE_INCLUDE_DIRECTORIES
			TARGET assimp::assimp
			PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
endif()

message(STATUS "----------")
find_package(tinyxml2  REQUIRED)
if(TARGET tinyxml2::tinyxml2)
	message(STATUS "tinyxml2_FOUND: ${tinyxml2_FOUND}")
	message(STATUS "tinyxml2_DIR: ${tinyxml2_DIR}")
endif()

message(STATUS "----------")
if(EXISTS "${PROJECT_SOURCE_DIR}/include/_deps/stb_image.h"
   AND EXISTS "${PROJECT_SOURCE_DIR}/include/_deps/stb_image_write.h")
	message(STATUS "found stb_image.h and stb_image_write.h")
else()
	message(FATAL_ERROR "not found stb_image.h or stb_image_write.h in include/_deps/n"
		"read setup.md for more detail")
endif()

message(STATUS "----------")
if(EXISTS "${PROJECT_SOURCE_DIR}/src/App/UEngine/Resources")
else()
	message(FATAL_ERROR "not found Resources/ in src/App/UEngine/n"
		"read setup.md for more detail")
endif()

message(STATUS "----------")
# https://eigen.tuxfamily.org/dox/TopicCMakeGuide.html
# https://gitlab.com/libeigen/eigen/-/blob/master/cmake/Eigen3Config.cmake.in
# https://gitlab.com/libeigen/eigen/-/blob/master/cmake/UseEigen3.cmake
find_package(Eigen3 3.3 NO_MODULE)
if(TARGET Eigen3::Eigen)
	message(STATUS "EIGEN3_FOUND: ${EIGEN3_FOUND}")
	message(STATUS "EIGEN3_USE_FILE: ${EIGEN3_USE_FILE}")
	message(STATUS "EIGEN3_DEFINITIONS: ${EIGEN3_DEFINITIONS}")
	message(STATUS "EIGEN3_INCLUDE_DIR: ${EIGEN3_INCLUDE_DIR}")
	message(STATUS "EIGEN3_INCLUDE_DIRS: ${EIGEN3_INCLUDE_DIRS}")
	message(STATUS "EIGEN3_ROOT_DIR: ${EIGEN3_ROOT_DIR}")
	message(STATUS "EIGEN3_VERSION_STRING: ${EIGEN3_VERSION_STRING}")
	include(${EIGEN3_USE_FILE})
else()
	message(WARNING "find_package(Eigen3 3.3 NO_MODULE) failed, so use include/_deps/Eigen/")
	if(NOT EXISTS "${PROJECT_SOURCE_DIR}/include/_deps/Eigen")
		message(FATAL_ERROR "not found Eigen/ in ${PROJECT_SOURCE_DIR}/include/_deps/n"
			"read setup.md for more detail")
	endif()
endif()

configure_file(config/ROOT_PATH.h.in config/ROOT_PATH.h)

include_directories (
	${PROJECT_SOURCE_DIR}/include
	${PROJECT_SOURCE_DIR}/include/_deps
	${CMAKE_BINARY_DIR}/config
	# $ENV{XXX_INCLUDE_PATH}
	# ...
)

#FIND_PACKAGE(OpenMP REQUIRED)
#if(OPENMP_FOUND)
#	message("OPENMP FOUND")
#	set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
#	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
#	set(CMAKE_EXE_linkER_FLAGS "${CMAKE_EXE_linkER_FLAGS} ${OpenMP_EXE_linkER_FLAGS}")
#endif()

Ubpa_AddSubDirsRec(src)

include (InstallRequiredSystemLibraries)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/676104.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号