问题标签 [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.
gcc - 可以安装 gcc,但 g++ 不起作用?
我对简单的 C++ 程序有疑问...
我想安装一个程序,但总是出现“c++ 编译器无法创建可执行文件”之类的错误...
现在我尝试编译一个简单的“hello world”程序,但是如果我使用 ac 编译器编译一个 c++ 程序(“`cout' undeclared”......虽然我包含了 iostream),我会得到错误......
现在我不确定,如果 g++ 在我的机器上不起作用?
有谁知道如何解决这个问题?
非常感谢你提前......
克里斯
添加响应 Pax 的回答:
好吧,我认为,我的代码还可以,我可以在另一台机器上编译它,并且我使用命名空间 std...
所以,g++ 的配置不匹配或类似的东西是不可能的......?
linux - libtool 将额外的“U”添加到 .so 文件名
我有一个用 autotools 构建的项目,分为两个文件夹;第一个lib创建一些库,第二个tools链接它们。
构建失败,因为 libtool 在重新链接时将库重命名如下:
重命名发生后,反正之前的名字没有恢复,也没有创建新的mylib.1.0.0 ,所以像mylib这样的符号链接仍然指向没有多余U的名字,链接失败。
有没有办法避免这种情况?或者甚至可能完全避免重新链接?我正在使用 libtool 1.5.6 版。
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 的子目录?
autotools - 如何为 GNU Autotools 重新配置大型程序
我有一个用 C 编写的相当大的程序。它跨越多个文件,并进行了一些重组以试图弥补平台问题。具体来说,我有不同操作系统、体系结构和编译器的头文件,这些文件定义了它用来处理事情的宏。例如,-v
标志打印版本信息,包括构建它的编译器的名称,以及构建它的操作系统和体系结构。举一个为什么它很重要的例子,程序可以创建一个 C 代码文件,如果你愿意,可以编译它 - 一个任务,它只是对它构建的任何编译器进行系统调用。
如果在您的系统上找到它,它还支持 GNU Readline 库(或 BSD Editline 库——同样的东西),如果您没有它,它还支持没有所有纯 ANSI 的 Readline 功能的等价物。
最重要的是,我不能去掉任何依赖于平台的位,因为几个函数在很大程度上取决于你拥有的操作系统/架构/编译器。我还想为拥有它的人提供良好的功能。我希望人们下载并安装它具有标准./configure
和界面。make
make install
目前,我正在使用一个抱歉的手工 shell 脚本configure
从头开始创建 Makefile,并根据您的操作系统/架构/编译器确定要包含哪些头文件。我想要一个更有效的方法,并且我想使用一个使用 GNU Autotools 的更标准的构建系统。这样我就知道我所做的事情可以在其他人的计算机上运行,而无需在他们的计算机上进行测试。
我的问题是,对于那些努力完成所有这些的人(谢谢!),我的问题是:1)我如何从自制构建系统切换到 GNU Autotools?2) 有哪些很好的 GNU Autotools 入门教程?3)我怎样才能使这个过程相对轻松?
packaging - 将单个自动工具项目分组到另一个“项目”的最佳方法是什么?
我将创建一个“库”,并希望使用 autotoolset 管理每个单独的项目。此外,我希望能够同时构建整套库。
个别图书馆:
- libyarconveniencezzz
- libyarfoo
- 自由行
- 利比亚巴兹
我怀疑我可能只需要手工编写一个顶级 Makefile,然后让每个单独的库/便利库成为它自己的 autotoolset 包。
我做过类似的事情(四五年前),但我丢失了参考代码。我真正记得的唯一一件事是花了几个月的时间在自动工具中摸索,然后才按我想要的方式进行所有设置。
autotools - README.in 如何在 autotools 中使用?
我正在使用 acmkdir 初始化一个新项目,它创建了一个 README.in 文件和一个 README 文件。
README.in 是否真的被某些东西用来创建自述文件?如果不是,它的目的是什么?我希望了解 acmkdir 创建的所有文件,这些文件让我很困惑。
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 对我来说是黑魔法,但我们必须在我们的位置使用它。这些文档对我来说是不可理解的。
c++ - 如何弄清楚从哪里加载程序数据?
我有一个用 C++ 编写的项目(在 glibmm 的帮助下),我正在使用自动工具来管理它。我要问的问题是“我到底如何才能确定从哪里装载东西?”。虽然我可以在 autotools 上找到我想要的所有指南,但没有人回答这个问题。
例如,地图进入$DATADIR/maps
(通常/usr/[local/]share/myprogram/maps
.Autotools 会做正确的事情并将它们放在那里,但我怎么知道它是放在那里还是$HOME/myprogram/maps
适当地加载它们(理想情况下它会$PWD
先搜索,但这很容易)。