./configure 总是检查 whether the build environment is sane...
我不禁想知道什么是疯狂的构建环境。此检查会引发哪些错误?
我希望使用 OpenVPN 源 tarball 在 OpenBSD 5.5 上安装 OpenVPN。
根据这里的说明,我必须安装lzo和
将
CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"指令添加到“配置”,因为gcc否则将找不到它们。
我已经广泛搜索了有关如何在 OpenBSD 上执行上述操作的指南,但没有。
这是我打算做的:
./configure CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
Run Code Online (Sandbox Code Playgroud)makemake install以下哪个语法是正确的?
./configure CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
Run Code Online (Sandbox Code Playgroud)
或者
./configure --CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
Run Code Online (Sandbox Code Playgroud)
或者
./configure --CFLAGS="-I/usr/local/include" --LDFLAGS="-L/usr/local/lib"
Run Code Online (Sandbox Code Playgroud) 这个问题确实限制了我对 Linux 的享受。如果应用程序不在存储库中,或者它没有安装程序脚本,那么我真的很纠结在哪里以及如何从源代码安装应用程序。
与Windows相比,这很容易。您(几乎)需要使用在向导中完成所有工作的安装程序应用程序。使用 Linux... 没那么多。
那么,您是否对此有任何提示或说明,或者是否有任何网站明确解释了从源代码安装 Linux 程序的方式、原因和位置?
我正在尝试将 apache 2.2.15 升级到 2.2.27。在运行从 apache2.2.15/build 获取的 config.nice 时,我收到以下错误:
checking whether the C compiler works... no
configure: error: in `/home/vkuser/httpd-2.2.27/srclib/apr':
configure: error: C compiler cannot create executables
Run Code Online (Sandbox Code Playgroud)
我试图在网上搜索但没有运气。我还通过运行一个小的 test.c 脚本测试了 c 编译器,它运行良好。在线提供的解决方案很少,例如安装“kernel-devel”软件包,但没有解决问题。我怎样才能让它发挥作用?
以下是生成的 config.log:
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by configure, which was
generated by GNU Autoconf 2.67. Invocation command line was
$ ./configure --prefix=/opt/myapp/apache2.2 --with-mpm=worker --enable-static-support --enable-ssl=static --enable-modules=most --disable-authndbd --disable-authn-dbm --disable-dbd --enable-static-logresolve …Run Code Online (Sandbox Code Playgroud) 我一直在测试不同的方法来缩短编译整个 C++ 项目所需的时间。目前大约需要 5 分钟。我试验了 distcc、ccache 和其他。最近,我发现如果我将整个项目复制到 RAM 驱动器上,然后从那里编译,它会将编译时间减少到原来的 30% —— 只需 1.5 分钟。
显然,从 RAM 驱动器工作是不切实际的。那么,有谁知道我可以强制操作系统始终缓存某个目录的方法吗?我仍然希望目录像往常一样同步回磁盘,但我也总是希望在内存中复制一份数据。这可能吗?
编辑:
作为一种可能的解决方案,我们只是想启动一个rsync每 10 秒左右运行一次的守护程序,以将磁盘驱动器与 RAM 驱动器同步。然后我们从 RAM 驱动器运行编译。该rsync是极快的,但这样做真的有用吗?当然,操作系统可以做得更好......
我知道如果我想编译我自己的 Linux 内核,我需要 Linux 内核头文件,但它们到底有什么用?
我发现下面/usr/src/似乎有几十个 C 头文件。但是它们的目的是什么,它们不是直接包含在内核源代码中吗?
我想尝试使用我的发行版提供的内核以外的内核——或者来自其他地方,或者是我定制的。这是困难还是危险?
我从哪里开始?
我正在尝试从源代码(通过 git)安装 Debian 软件包。我下载了包,更改到包的目录并运行./configure命令,但它返回bash: ./configure: No such file or directory. 可能是什么问题?一个configure.ac文件位于程序文件夹。
./configure
make
sudo make install
Run Code Online (Sandbox Code Playgroud) 有时在项目源中我会看到“*.in”文件。例如,一堆“Makefile.in”。它们是什么和/或“.in”部分是什么意思?我认为这与autoconf或make或类似的事情有关,但我不确定。
我试过搜索“.in 文件扩展名”、“autoconf .in 文件扩展名”、“autoconf .in”、“autoconf dot in”和其他变体,但没有成功。
假设我有一个静态main.c链接到libmine.a. 静态链接到库会导致库函数在编译时嵌入到主可执行文件中。
如果libmine.a要提供 未使用的函数main.c,编译器(例如 GCC)会丢弃这些函数吗?
这个问题的灵感来自于“常见消息传递”,即使用静态库会使可执行文件更大,所以我很好奇编译器是否至少从存档文件中删除未使用的代码。
compiling ×10
configure ×4
linux ×2
linux-kernel ×2
32bit ×1
apache-httpd ×1
autoconf ×1
autotools ×1
c ×1
compiler ×1
gcc ×1
header-file ×1
libraries ×1
make ×1
performance ×1
source ×1
ubuntu ×1