【发布时间】:2016-04-13 21:16:37
【问题描述】:
我正在尝试找出一种安装 C 和 C++ 代码的简化方法 以及由它们构建的库,主要用于 Linux。我认为 GNU Autotools、CMake 等对于我正在尝试做的事情来说太过分了。
一个例子:我写了一些代码,当“make”运行时,构建到 创建一个库“example.a”。 (到目前为止,我将使用静态链接。 共享库将引入更多问题;我会在走路之前爬行。)使用功能需要包括'example1.h','example2.h'等。
使用 Autotools,可以运行“make install”或“sudo make install”来 将 example.a 复制到 /usr/local/lib 并将包含文件复制到 /usr/local/include。 如果已构建可执行文件,它们将被复制到 /usr/local/bin。
我已尝试将以下几行添加到我的 makefile:
安装:
cp example.a /usr/local/lib
cp example1.h /usr/local/include
cp example2.h /usr/local/include
cp 示例 /usr/local/bin
这似乎很有效。然后其他项目能够“看到” .h 文件并正确构建。但是 .a 文件没有找到;唯一的 使其链接的方法是将路径明确指定为 /usr/local/lib/example.a。 (尽管 gcc 坚持它正在寻找库 在那条路上。)所以:
问题 1:我的用户构建的库应该放在 /usr/local/lib 中吗?或者我 我使用了错误的目录?
现在,我的下一个问题是:这必须通过“sudo make install”来完成。 我在想,对于这类同类项目,只有一个用户会 正在使用有问题的代码,库应该去某个地方 例如 $HOME/lib,包含文件到 $HOME/include,可执行文件到 $HOME/bin.
问题 2:是否有安装包含/库的“标准”方式 只是当前用户,而不是为所有用户这样做? (因此避免 需要root用户,我认为这将是一个“更清洁”的系统,只要 使用该程序的用户必须处理这些文件。)
【问题讨论】:
标签: c++ c linux installation