首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CMake: GLFW作为ExternalProject

CMake: GLFW作为ExternalProject
EN

Stack Overflow用户
提问于 2015-02-03 04:12:33
回答 1查看 1.6K关注 0票数 6

问题

我正在尝试制作一个使用GLFW的项目。对于这个项目,我使用CMake作为一个构建系统。我想让它,所以用户只需构建我的项目与CMake,作为过程的一部分,GLFW将得到适当的构建和链接。

为此,我将GLFW作为ExternalProject添加到CMake文件中:

代码语言:javascript
复制
EXTERNALPROJECT_ADD(glfw
    GIT_REPOSITORY https://github.com/glfw/glfw.git
    GIT_TAG 3.1
    INSTALL_DIR "${PROJECT_BINARY_DIR}/libs/glfw"
)

但是,当我生成项目(对于VS12 2013 x64)并运行ALL_BUILD时,会得到以下错误:

代码语言:javascript
复制
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

当我尝试使用CMake构建GLFW而不指定CMAKE_INSTALL_PREFIX时,也会出现同样的错误。

尝试解决方案

为了解决这个问题,我想为glfw ExternalProject指定glfw选项。不过,我不能接缝做这件事。我试过:

代码语言:javascript
复制
SET_TARGET_PROPERTIES(glfw PROPERTIES CMAKE_INSTALL_PREFIX "${PROJECT_BINARY_DIR}/libs/glfw")

在添加ExternalProject之后。然而,这种接缝没有任何效果。

问题

如何将CMAKE_INSTALL_PREFIX设置为glfw ExternalProject?

正如@drescherjm所提到的,这个失败的根源是CMake试图在C:/Program Files中创建文件,它需要特殊的权限。问题是CMake默认为这个位置,因为我无法在CMake文件中设置正确的位置。

更多信息

OS:Windows8.1 x64

CMake版本:3.1.1

Visual版本:Community2013V4.5.53349

CMake文件

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-03 19:26:50

您需要手动将前缀参数传递给添加。试试这个:

代码语言:javascript
复制
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"
)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28291238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档