问题标签 [gnulib]

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 投票
1 回答
1989 浏览

mingw - 在 MinGW 上开始使用 gnulib 并且不熟悉(足够)自动工具

我有一些为 Linux 编写的 C 代码,依赖于套接字和 arpa/inet.h 以及 libusb.h,我想在 MinGW 下为 Windows 编译它。(请注意,当前项目只有一个非常简单的 Makefile,根本不依赖自动工具)。

看起来使用 gnulib 将是能够在 MinGW 下为 Windows 编译它的好方法,我已经朝着这个方向开始,但似乎如果你对自动工具不是很熟悉,你真的会陷入困境迅速地。

所以这就是我尝试过的:

它运行并在最后给我以下消息:

好的,我没有 configure.ac 也没有 Makefile.am,所以我按如下方式创建它们(按照上面的说明):

和...

现在在这一点上,gnulib 文档似乎假设您非常熟悉自动工具,因此它们省略了您接下来需要使用自动工具做什么的所有说明。

从我通过阅读各种论坛了解到的情况来看,接下来的步骤似乎是运行:

但是...当我运行 automake 时,我得到了:

'lib/Makefile.am:30: to configure.ac' and runautoconf' 再次。

嗯...好吧,这可能只是我在 Makefile.am 中缺少的一些东西(因为我不完全确定 Makefile.am 应该包含什么内容)...所以退后一步...我应该能够运行上面在 autoconf 步骤中创建的配置文件:

根据我通过谷歌搜索所读到的内容,似乎 gl_EARLY 和 gl_INIT 应该由添加到 Makefile.am 文件(ACLOCAL_AMFLAGS = -I m4)的行来处理,但此时我并不完全确定我正在正确地做这部分的自动工具。谁能指出我在这里做错了什么?

0 投票
1 回答
261 浏览

c - libpipeline 无法在 Mac OS X 上编译

我正在尝试libpipeline在 Mac OS X 上构建,但我遇到了其他使用autotools.

这是我得到的第一个错误:

第二个错误更加神秘:

最后,我得到了这个错误,推测这是以前错误的高潮。

完整日志:https ://gist.github.com/ahyattdev/7e4da95d48a6d25ad77aad926a14e7b0

重现步骤:获取源码libpipeline 1.4.1,运行configure; make

0 投票
1 回答
221 浏览

linux - 可以使用 gnulib-tool 获取 netinet/in.h 吗?

我最终遇到了与 MinGW 上的 gnulib 入门相同的问题,并且对 autotools 不熟悉(足够) ——也就是说,想要netinet/in.h在 MinGW Windows 项目中包含标头;那是我第一次听说的地方gnulib

正如上面的帖子所述,主要目的gnulib是用正确的文件对现有autoconf项目进行“修补”;但是,我使用的项目的构建系统我不太了解 - 所以起初,我只想复制标题。

现在,我不太确定,但在我看来,好像gnulib会根据运行它的系统生成这些标头 - 这就是为什么它没有netinet/in.h逐字包含,而是包含:

事实上,这个文件有类似的东西@PRAGMA_SYSTEM_HEADER@,我只能假设是一些宏。

所以,我发现有一个命令--create-testdir,所以我这样尝试:

我已经在 Linux 上试过了,它运行良好,但是:

...我仍然没有逐字逐句地得到任何标题(而且那个标题里面仍然有宏)?原来我不能在我的 MinGW-w64 上尝试这个,因为那里没有aclocal程序......

那么任何人都可以解释是否可以使用 生成完整的标头--create-testdir,或者在此过程中如何/何时可以期望获得实际的标头(以及它是否依赖于主机操作系统)?

0 投票
2 回答
147 浏览

cross-platform - 如何使用 gnulib-tool 确定要导入的内容

autoscan产生了一系列的功能检查(AC_FUNC_*AC_CHECK_FUNCS),和AC_CHECK_HEADERS。现在我需要引入 gnulib 代码。我是否只是尝试导入自动扫描识别的每个函数和标题?其中一半没有出现在gnulib-tool --list输出中。还是我要等到./configure在某个平台上失败?

0 投票
1 回答
1008 浏览

c - Cross-compile a gnulib based project to MinGW

I am trying to cross-compile this project to MinGW.

The project uses autotools as the build system, and depends on libcurl, CUnit, Jansson and some gnulib modules.

I have all the dependancies compiled for x86_64-w64-mingw32 and installed under /home/user/mingw64

I run:

And I get this error:

errno.h is part of the gnulib modules. So I think that the problem comes from this section in the Makefile.am:

But I can't figure out the solution. I followed exactly the instructions described in the gnulib manual.

0 投票
1 回答
60 浏览

gnulib - `gnulib-tool --update` 不改变 `.gitignore` 文件

我在我的项目中使用了一些 gnulib 模块。我选择不在我的存储库中携带它们。每次我做一个新的克隆时,我都会跑。

我已经准备好了!

一个问题。我.gitignore已经设置了我的文件,我对它们非常满意。我不想gnulib-tool搞砸他们。

知道如何摆脱这种副作用吗?

编辑:该--no-vc-files选项不适用于--update.

0 投票
0 回答
33 浏览

linux - GNU C 库和驱动程序开发

我是一名 Linux 新手,我正在尝试了解其中一些库和设备是如何链接在一起的。我想直接访问内存。我应该使用 DMA 驱动程序,我应该编写一个 DMA 驱动程序并将其包装在用户空间 C 应用程序中,还是应该只使用像 mmap 这样的函数?/usr/include/sys 头文件和我总是在驱动程序中看到的 linux 头文件之间是否有任何链接?字符驱动程序不是通过读写特殊文件来工作吗?是否允许在 GNU C 库中发生这种情况的读取和写入函数?我想让 Linux C 在我的脑海中理顺,尤其是当它与嵌入式 Linux 有关时。提前致谢

0 投票
2 回答
778 浏览

makefile - autoconf:如何替换库前缀?

CLISPPARI接口配置有包含from 。configure.inAC_LIB_LINKFLAGS([pari])lib-link.m4

构建过程还需要Makefile知道datadirofPARI的位置。为此,Makefile.in

并期望找到$(DATADIR)/pari/pari.desc(通常 /usr/share/pari/pari.desc/usr/local/share/pari/pari.desc)。

这似乎适用于PARIhomebrew安装在/usr/local(and LIBPARI_PREFIX=/usr/local) 中的 Mac OS X,但不适用于 Ubuntu 上,其中PARI是 in /usr,并且LIBPARI_PREFIXempty

如何将PARI's的位置datadir插入Makefile?

PS。我还在autoconf 邮件列表上问过这个问题。

聚苯乙烯。响应@BrunoHaible 的建议,这是在Linux 上调试的微不足道的尝试(其中LIBPARI_PREFIX)。

0 投票
1 回答
663 浏览

makefile - Gnulib config.h 丢失错误

我正在尝试将libisofs移植到 Windows。我的环境是安装了 mingw-w64-i686 工具链的 MSYS2。

我已经使用 gnulib 来缺少带有 gnulib-tool --import命令的标头:

我已经完成了指导中的所有步骤:

尽管configure.ac中没有AC_PROG_CC,所以我在之后添加gl_EARLYAM_PROG_CC_C_O 并且没有SUBDIRS变量,Makefile.am所以我在底部手动添加了它,如下所示:

我所做的所有配置:

运行 make 后,我收到错误:

据我了解,该文件必须由创建./configure,但我不明白为什么编译器找不到它。

configure.ac:https://pastebin.com/JbWRqjEv Makefile.am:https://pastebin.com/V6ZBq8Vd 所有输出:https : //pastebin.com/WFu5aJU7


0 投票
1 回答
30 浏览

gnulib - 为什么当我使用 gcc 3.4.3 在 x86 Solaris 10 上构建 ratpoison 时会出现以下错误

为什么当我使用 gcc 3.4.3 在 x86 Solaris 10 上构建 ratpoison 时会出现以下错误

文件 strcasestr completions.old 中未定义的第一个引用符号:致命:符号引用错误。没有输出写入ratpoison collect2:ld返回1退出状态gmake [2]:*** [ratpoison]错误1

但是 _GNU_SOURCE 在 completions.c 中。