在没有root访问权限的情况下安装qlfw3

时间:2017-07-17 16:05:13

标签: cmake glfw

我正在开发一个需要glfw3包的项目。我尝试过安装glfw3,需要访问“/ usr / local / include”。但由于我没有root访问权限,因此拒绝了制作目录GLFW的权限。我怎么能绕过这个?

1 个答案:

答案 0 :(得分:1)

你不是。那是 cmake 的默认值。如果您想要一个漂亮的交互式配置,请转到源树的顶层并输入ccmake .,您可以轻松找到覆盖INSTALL_PREFIX的选项。如果点击't',您会获得更多高级选项。完成后,'g'将生成Makefile并退出。我在$HOME/local为我的项目安装了很多本地库。 glfw就是其中之一。同时将$HOME/local/bin添加到PATH$HOME/local/lib添加到[DY]LD_LIBRARY_PATH。它很适合我,有一些本地沙箱可供开发。

更好的是,它安装了lib/pkgconfig/glfw3.pc,这使我的生活变得更轻松,使用GLFW构建应用程序,使用pkg-config查询依赖关系,包含路径,库路径,库/框架(PKG_CONFIG_PATH=/Users/brett/local/lib/pkgconfig在我的shell脚本中设置所有其他.pc元数据文件。

它还允许我轻松地将GLFW3集成到autotools中。 pkg-config提供了初始化宏,如:

PKG_PROG_PKG_CONFIG([0.29]) # defines PKG_CONFIG variable.

并且允许我编写一些用户友好的脚本来将GLFW3集成到我的包中,例如,

AC_MSG_RESULT([])
AC_MSG_RESULT([GLFW3 for OpenGL window and event management...])

PKG_CHECK_MODULES_STATIC([GLFW3], [glfw3 >= 3.2.1],
  [ac_glfw3_version=`$PKG_CONFIG glfw3 --modversion`],
  [ac_glfw3_version=;])

if test "x$ac_glfw3_version" != x ; then

  GLFW_VIS_CXXFLAGS=`echo $GLFW3_CFLAGS`
  GLFW_VIS_LIBFLAGS=`echo $GLFW3_LIBS`

  AC_MSG_RESULT([GLFW3 version: $ac_glfw3_version])
  AC_MSG_RESULT([CXXFLAGS: $GLFW_VIS_CXXFLAGS])
  AC_MSG_RESULT([LIBFLAGS: $GLFW_VIS_LIBFLAGS])

else

  dnl ... something else? ...

  AC_MSG_WARN([the vis library will be omitted from the build:])
  AC_MSG_RESULT([GLFW3 @ glfw.org])

  dnl ... or just AC_MSG_FAILURE? ...
fi

我暂时抵制cmake。由于真实软件开发的现实,它变得越来越复杂,我觉得它重新发明了autotools轮。没有20多年的平台怪癖和经验可以借鉴。除了使用cmake之外,你需要一大堆额外的支持软件来构建那个轮子......