Noa*_*ert 6 c++ cmake glfw visual-c++ external-project
我正在尝试制作一个使用GLFW的项目.对于这个项目,我使用CMake作为构建系统.我想这样做,因此用户只需要使用CMake构建我的项目,并且作为流程的一部分,GLFW将被适当地构建和链接.
要做到这一点,我ExternalProject在我的CMake文件中添加GLFW :
EXTERNALPROJECT_ADD(glfw
GIT_REPOSITORY https://github.com/glfw/glfw.git
GIT_TAG 3.1
INSTALL_DIR "${PROJECT_BINARY_DIR}/libs/glfw"
)
Run Code Online (Sandbox Code Playgroud)
但是,当我生成项目(对于VS12 2013 x64)并运行时,ALL_BUILD我收到以下错误:
2> CMake Error at cmake_install.cmake:31 (file):
2> file INSTALL cannot make directory "C:/Program Files/GLFW/include/GLFW": No
2> such file or directory
Run Code Online (Sandbox Code Playgroud)
当我尝试使用CMake构建GLFW而没有指定时,我得到了同样的错误CMAKE_INSTALL_PREFIX.
为了解决这个问题,我想指定ExternalProject 的CMAKE_INSTALL_PREFIX选项glfw.但是,我不接缝能够做到这一点.我试过了:
SET_TARGET_PROPERTIES(glfw PROPERTIES CMAKE_INSTALL_PREFIX "${PROJECT_BINARY_DIR}/libs/glfw")
Run Code Online (Sandbox Code Playgroud)
添加ExternalProject后.然而,这种接缝没有任何效果.
如何设置CMAKE_INSTALL_PREFIX为glfwExternalProject?
正如@drescherjm所提到的,这种失败的根源在于CMake正在尝试创建C:/Program Files需要特殊权限的文件.问题是CMake默认为此位置,因为我无法在我的CMake文件中设置正确的位置.
操作系统:Windows 8.1 x64
CMake版本:3.1.1
Visual Studio版本:Community 2013 V4.5.53349
CMake文件
小智 4
您需要将CMAKE_INSTALL_PREFIX参数手动传递给ExternalProject_Add。试试这个:
cmake_minimum_required(VERSION 2.8)
project(Foo)
include(ExternalProject)
ExternalProject_Add(
GLFW
URL "https://github.com/glfw/glfw/archive/3.1.tar.gz"
URL_HASH SHA1=fe17a0610a239311a726ecabcd2dbd669fb24ca8
CMAKE_ARGS "-DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/_my_install"
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1203 次 |
| 最近记录: |