每次从源代码编译时,都会经历相同的3个步骤:
$ ./configure
$ make
$ make install
Run Code Online (Sandbox Code Playgroud)
我理解,将安装过程划分为不同的步骤是有道理的,但我不明白,为什么这个星球上的每个编码器必须一次又一次地编写相同的三个命令才能完成一个单独的工作.从我的角度来看./install.sh
,使用包含以下文本的源代码自动交付脚本是完全合理的:
#!/bin/sh
./configure
make
make install
Run Code Online (Sandbox Code Playgroud)
人们为什么要分开做3个步骤?
我找不到有关如何在Windows上安装Qt的任何信息.
在wiki文章中如何在Mac和Linux上设置阴影构建,其中有脚本中的-prefix
选项说明,configure
但此选项在Windows上不可用.
我知道我可以直接使用构建文件夹中的Qt,但是不执行安装步骤似乎不对.这种方法的一个问题是尺寸; Qt的构建文件夹占用大约4GB的空间,而使用二进制安装程序安装后,Qt需要大约1GB的空间.我猜不同之处在于构建期间创建的临时文件.我希望一些安装过程只安装(复制)所需的文件,在build文件夹中保留临时文件.
configure
脚本在帮助消息中始终包含以下内容:
... By default, `make install' will install all the files in `/usr/local/bin', `/usr/local/lib' etc. You can specify an installation prefix other than `/usr/local' using `--prefix', for instance `--prefix=$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files …
我正在尝试在我的 linux 上安装 node js。我正确安装了所有先决条件。我正确运行 ./configure 。问题出在“make”命令和“make install”命令中
制作
进行安装
——
这是我在“make”命令后在终端中收到的内容:
/usr/bin/python tools/gyp_node.py -f make
make -C out BUILDTYPE=Release V=1
make[1]: Entering directory '/home/islamassi/programming files/phoneGap/node- v0.10.30/node/out'
Makefile:271: *** mixed implicit and normal rules. Stop.
make[1]: Leaving directory '/home/islamassi/programming files/phoneGap/node- v0.10.30/node/out'
Makefile:45: recipe for target 'node' failed
make: *** [node] Error 2
Run Code Online (Sandbox Code Playgroud)
——
这在“make install”命令之后:
make -C out BUILDTYPE=Release V=1
make[1]: Entering directory '/home/islamassi/programming files/phoneGap/node-v0.10.30/node/out'
Makefile:271: *** mixed implicit and normal rules. Stop.
make[1]: Leaving directory '/home/islamassi/programming files/phoneGap/node- v0.10.30/node/out'
Makefile:45: …
Run Code Online (Sandbox Code Playgroud) 这是我的尝试:
IF (NOT WIN32)
#INSTALL_TARGETS(${LIB_INSTALL_DIR} ${tinyscheme-nix_BINARY_DIR}/libtinyscheme.so)
#INSTALL(TARGETS ${tinyscheme-nix_BINARY_DIR}/libtinyscheme.so DESTINATION ${LIB_INSTALL_DIR})
ENDIF()
Run Code Online (Sandbox Code Playgroud)
两种变体都是错误的。我想libtinyscheme.so
从移动${tinyscheme-nix_BINARY_DIR}
到/lib
或/lib64
。基本上,我认为${LIB_INSTALL_DIR}
可以处理它。
我怎样才能做到呢?我的错误在哪里?
make-install ×5
configure ×2
installation ×2
makefile ×2
autoconf ×1
automake ×1
cmake ×1
cordova ×1
install ×1
libraries ×1
node.js ×1
qt ×1
system-paths ×1
unix ×1
windows ×1