问题标签 [autotools]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
3740 浏览

gcc - 可以安装 gcc,但 g++ 不起作用?

我对简单的 C++ 程序有疑问...

我想安装一个程序,但总是出现“c++ 编译器无法创建可执行文件”之类的错误...

现在我尝试编译一个简单的“hello world”程序,但是如果我使用 ac 编译器编译一个 c++ 程序(“`cout' undeclared”......虽然我包含了 iostream),我会得到错误......

现在我不确定,如果 g++ 在我的机器上不起作用?

有谁知道如何解决这个问题?

非常感谢你提前......
克里斯


添加响应 Pax 的回答:

好吧,我认为,我的代码还可以,我可以在另一台机器上编译它,并且我使用命名空间 std...

所以,g++ 的配置不匹配或类似的东西是不可能的......?

0 投票
1 回答
272 浏览

linux - libtool 将额外的“U”添加到 .so 文件名

我有一个用 autotools 构建的项目,分为两个文件夹;第一个lib创建一些库,第二个tools链接它们。
构建失败,因为 libtool 在重新链接时将库重命名如下:

重命名发生后,反正之前的名字没有恢复,也没有创建新的mylib.1.0.0 ,所以像mylib这样的符号链接仍然指向没有多余U的名字,链接失败。
有没有办法避免这种情况?或者甚至可能完全避免重新链接?我正在使用 libtool 1.5.6 版。

0 投票
1 回答
496 浏览

java - 默认在哪里安装本地 Java 库?

我正在将 JNI 绑定与 C++ 库集成。

该库遵循通常的约定:/usr/local默认情况下安装根目录,并且可以使用--prefix参数修改为./configure; .a.so文件进入${prefix}/lib;等等

JNI 绑定生成两个新库,libfoojni.so(本机部分)和libfoo.jar(Java 部分)。

在这种方案下,放置这些文件(例如${prefix}/java)的常规位置是什么?

允许用户提供一个单独的 Java 根目录(例如/usr/share/java)是否更可取?

应该libfoojni.so进入${prefix}/lib或进入一些特定于 Java 的子目录?

0 投票
2 回答
1932 浏览

autotools - 如何为 GNU Autotools 重新配置大型程序

我有一个用 C 编写的相当大的程序。它跨越多个文件,并进行了一些重组以试图弥补平台问题。具体来说,我有不同操作系统、体系结构和编译器的头文件,这些文件定义了它用来处理事情的宏。例如,-v标志打印版本信息,包括构建它的编译器的名称,以及构建它的操作系统和体系结构。举一个为什么它很重要的例子,程序可以创建一个 C 代码文件,如果你愿意,可以编译它 - 一个任务,它只是对它构建的任何编译器进行系统调用。

如果在您的系统上找到它,它还支持 GNU Readline 库(或 BSD Editline 库——同样的东西),如果您没有它,它还支持没有所有纯 ANSI 的 Readline 功能的等价物。

最重要的是,我不能去掉任何依赖于平台的位,因为几个函数在很大程度上取决于你拥有的操作系​​统/架构/编译器。我还想为拥有它的人提供良好的功能。我希望人们下载并安装它具有标准./configure和界面。makemake install

目前,我正在使用一个抱歉的手工 shell 脚本configure从头开始创建 Makefile,并根据您的操作系统/架构/编译器确定要包含哪些头文件。我想要一个更有效的方法,并且我想使用一个使用 GNU Autotools 的更标准的构建系统。这样我就知道我所做的事情可以在其他人的计算机上运行,​​而无需在他们的计算机上进行测试。

我的问题是,对于那些努力完成所有这些的人(谢谢!),我的问题是:1)我如何从自制构建系统切换到 GNU Autotools?2) 有哪些很好的 GNU Autotools 入门教程?3)我怎样才能使这个过程相对轻松?

0 投票
1 回答
102 浏览

packaging - 将单个自动工具项目分组到另一个“项目”的最佳方法是什么?

我将创建一个“库”,并希望使用 autotoolset 管理每个单独的项目。此外,我希望能够同时构建整套库。

个别图书馆:

  • libyarconveniencezzz
  • libyarfoo
  • 自由行
  • 利比亚巴兹

我怀疑我可能只需要手工编写一个顶级 Makefile,然后让每个单独的库/便利库成为它自己的 autotoolset 包。

我做过类似的事情(四五年前),但我丢失了参考代码。我真正记得的唯一一件事是花了几个月的时间在自动工具中摸索,然后才按我想要的方式进行所有设置。

0 投票
1 回答
307 浏览

autotools - README.in 如何在 autotools 中使用?

我正在使用 acmkdir 初始化一个新项目,它创建了一个 README.in 文件和一个 README 文件。

README.in 是否真的被某些东西用来创建自述文件?如果不是,它的目的是什么?我希望了解 acmkdir 创建的所有文件,这些文件让我很困惑。

0 投票
1 回答
962 浏览

autotools - Libtool 慢,双重构建?

在我的项目中,为了整洁,模块被组织在子目录中。

我的项目目录层次结构:

配置.in:

生成文件.am:

生成文件.cvs:

src/Makefile.am

src/log/Makefile.am:

src/main.cpp:包含int main(){}src/log/log.cpp包含void f(){}

调用make产生(为简洁而编辑):

问题出在前三行:log.cpp 编译了两次!

问题:为什么不只编译一次——花费一半的时间?

注意:我不知道我在做什么——autotools 对我来说是黑魔法,但我们必须在我们的位置使用它。这些文档对我来说是不可理解的。

0 投票
9 回答
21464 浏览

c - Autoconf 和 A​​utotools 的替代品?

我是 GNU Autotools(主要是Autoconf,偶尔是Libtool)的一个非常频繁的用户。我正在从事一个项目,其中可移植性将成为一个症结。然而,团队的其他成员只是不习惯使用m4。我收件箱中收到的不是一个人,而是四个人:

m4 不是口齿不清,该死!

无论如何,也许有人可以推荐一些基于 Python 或 PHP 的东西?我正在研究一棵更大的树的 C 端;我可以肯定 Python 或 PHP 5 都会出现,因为它们是先决条件。

0 投票
2 回答
200 浏览

c++ - 如何弄清楚从哪里加载程序数据?

我有一个用 C++ 编写的项目(在 glibmm 的帮助下),我正在使用自动工具来管理它。我要问的问题是“我到底如何才能确定从哪里装载东西?”。虽然我可以在 autotools 上找到我想要的所有指南,但没有人回答这个问题。

例如,地图进入$DATADIR/maps(通常/usr/[local/]share/myprogram/maps.Autotools 会做正确的事情并将它们放在那里,但我怎么知道它是放在那里还是$HOME/myprogram/maps适当地加载它们(理想情况下它会$PWD先搜索,但这很容易)。

0 投票
1 回答
8682 浏览

c - 如何像在 Autotools 中一样检查 CMake 中的头文件和库函数?

我目前正在将一个小型 C 项目从autotools转换为CMake

在旧版本中configure.in,我使用以下几行检查了每个头文件和库函数是否存在:

这是许多自动工具项目所做的 AFAIK。

尽管编译器已经检查了必要的头文件并且链接器检查了库函数,但我的代码仍然需要在配置阶段完成这些检查才能正确设置它的编译标志#ifdef HAVE_FOOBAR等。

在这种情况下,使用 CMake 检查标头/函数的最佳做法是什么?