如何将mysql.h和my_global.h纳入Makefile.am?
我正在尝试创建一个可以通过这两个标头文件与MySQL数据库通信的C程序: mysql.h my_global.h MySQL附带Mysql_config脚本,您可以执行该脚本以找出系统中包含文件和库文件位于系统中的位置.我想知道您将如何在makefile.am中定义它? 我目前有以下内容: bin_PROGRAMS = db db_SOURCES = db.c db.h db_CFLAGS = -Wall `mysql_config --cflags --libs` 这是正确的方式吗? 解决方案 我将使用 in mysql_config ax_with_prog 宏: AX_WITH_PROG([MYSQL_CONFIG], [mysql_config], [AC_MSG_ERROR(mysql_config is required to buil
18 2024-04-10
编程技术问答社区
g++-4.6.real:错误:未识别的选项'-R'。
我正在尝试编译 phpcompiler 使用此配置命令来自源. ./configure --prefix=/opt/phc-0.3.0.1/ --with-php=/opt/php-5.3.17/ 配置错误是 checking for exit in -lboost_regex-mt... no checking for exit in -lboost_regex-mt... (cached) no checking for exit in -lboost_regex... no checking for exit in -lboost_regex... (cached) no checking for exit in -lboost_regex... (cached) no configure: error: Could not link against boost_regex 这完全是错误的,因为我安装了Boost和BOOST_REGEX软件包. lib
10 2024-04-09
编程技术问答社区
Autoconf问题:"错误: C语言编译器不能创建可执行文件"
我正在尝试使用GNU Autotools在C中编写的程序构建一个程序,但是我显然设置了错误,因为当configure运行时,它会吐出: configure: error: C compiler cannot create executables 如果我看config.log,我会看到: configure:2846: checking for C compiler default output file name configure:2868: gcc conftest.c >&5 conftest.c:3:25: warning: missing terminating " character conftest.c:4: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token configure: failed program was: | /* confdefs.h.
12 2024-04-09
编程技术问答社区
使用autotools在gstreamer插件中针对外部库进行链接
我已经使用了GSTREAMER插件作家指南中的Berierplate模板编写了GSTREAMER插件( http://gstreamer.freedesktop.org/data/data/doc/gstreamer/head/pwg/pwg/html/chapter-chapter-building-building-boiler.html ).我首先构建了该插件,而无需完全实现链函数(基本上是一个空插件,该插件从源传递到and的情况下,没有更改). 我现在正在实现链函数,以对缓冲区中的数据进行基本过滤.过滤使用外部锐化库(我在GSTREAMER之外成功使用了库).使用Autotools构建时,我没有错误,但是在使用新插件创建管道时,我会得到一个不确定的符号错误 (gst-plugin-scanner:6512): GStreamer-WARNING **: Failed to load plugin '/usr/local/lib/gstreamer-1.0/libgst
8 2024-04-08
编程技术问答社区
从一些软件包中安装头文件的正确方法是什么?
我想从源(e2fsprogs更具体)构建一些软件包,然后将其标头文件安装到我的系统中.之后,我将删除构建树,以便不再可以访问它.正确的方法是什么? 当我想安装程序时,我简单地进行: $ ./configure $ make # make install 当我要安装标题时,等效的动作是什么? 解决方案 对于e2fsprogs ,引用 7)安装包括文件和库 您可以运行``MAKE install-libs''来安装Include Files和 库.请注意,不需要此安装 工作程序.仅当您期望发展其他 使用图书馆或要编译其他程序的程序 使用这些库(例如4.4BSD转储和还原端口). 虽然更一般地,当我想找出安装对他人有用的东西的"正确"方法时,我会看: 包装在我最喜欢的distro中的样子
14 2024-04-08
编程技术问答社区
自动检查flock的结构
fcntl()使用struct flock结构来定义和检查文件锁.不幸的是,在不同的UNIX系统上,该结构中的字段按不同的顺序.是否有人知道如何使用AutoConf检查它,或者至少检查结构是否采用特定格式(例如,问题将是 - 结构格式与Linux格式匹配)? 解决方案 您可以使用此AutoConf宏来查找struct flock的某个成员是否存在: AC_CHECK_MEMBERS([struct flock.l_type],[],[],[[#include ]]) github有多种autoconf文件,您可以通过在 *ac文件中搜索" struct Flock". 更新: struct flock订单的问题是我们可以从该错误中汲取灵感,并在配置中进行此操作: AC_MSG_CHECKING("whether flock struct is linux ordered or not") AC_TRY_RUN([ #include
8 2024-04-08
编程技术问答社区
我如何在我的Make文件中定义#define?
在我的C/C ++文件中,有多个#Define.例如: #ifdef LIBVNCSERVER_HAVE_LIBZ /* some code */ #ifdef LIBVNCSERVER_HAVE_LIBJPEG /* some more code */ 您能告诉我如何修改我的makefile.in. 谢谢. 解决方案 -DLIBVNCSERVER_HAVE_LIBZ -DLIBVNCSERVER_HAVE_LIBJPEG 您可以通过CPPFLAGS, 将其传递给 CPPFLAGS = -DLIBVNCSERVER_HAVE_LIBZ -DLIBVNCSERVER_HAVE_LIBJPEG 或制作新变量 CUSTOMDEFINES = -DLIBVNCSERVER_HAVE_LIBZ -DLIBVNCSERVER_HAVE_LIBJPEG 并将其传递给CPPFLAGS = -DEXISTINGFLAGS $(CUSTOMDEFINES)
8 2024-04-08
编程技术问答社区
标题的宏定义,放在哪里?
定义标头依赖的宏时,例如_FILE_OFFSET_BITS,FUSE_USE_VERSION,_GNU_SOURCE等,将它们放置在哪里? 我考虑过的一些可能性包括 在该文件中包含的标题所示的定义的任何源文件的顶部 在相关标头的包含之前 通过编译器在CPPFLAGS级别定义? (例如-D_FILE_OFFSET_BITS=64)对于: 整个源repo 整个项目 只是需要它的来源 在项目标题中,还应包括宏应用的那些相关标头 我没有想过的其他一些地方,但无限优越 注意:通过适用性,自动工具和其他构建系统的理由是我决定的一个因素. 解决方案 如果宏影响系统标头,他们可能应该去某个地方影响包括这些系统标头的每个源文件(其中包括间接包含它们的标题).因此,最合乎逻辑的位置将在命令行上,假设您的构建系统允许您设置例如cppflags影响每个文件的汇编. 如果您使用预编译标题,并且具有预编译的标题,因此必须首先包含在每个源文件中(例如,用于MSVC项目
12 2024-04-08
编程技术问答社区
在英特尔机器上构建苹果硅二进制
如何在MacOS 11(Intel)上编译C项目以在Silicon上工作? 我当前的构建脚本很简单: ./configure make sudo make install 我尝试使用--host和--target标志aarch64-apple-darwin和arm-apple-darwin没有任何运气. 二进制总是默认为x86_64: > file foobar.so foobar.so: Mach-O 64-bit bundle x86_64 更新: 指定--host时似乎找不到CC和GCC. checking for arm-apple-darwin-cc... no checking for arm-apple-darwin-gcc... no 解决方案 我们最终解决了解决此问题的问题,并能够在GitHub Actions'X86-64机器上编译darwin-arm64和debian-aarch64二进制文件. 我们对ARM64的
12 2024-04-07
编程技术问答社区
Automake错误'./ltmain.sh'未找到
我已经使用mingw-get-setup.exe安装了mingw和msys.我还将Autotools(AutoConf,Automake,M4,Libtool)安装到C:\/opt/autotools>中. 当我运行汽车时,总是会发生以下错误: configure.ac:11: error: required file './ltmain.sh' not found 如果我从libtool的已安装树中复制ltmain.sh,则执行将正常完成. 我如何配置自动制品以查找ltmain.sh而不复制? 解决方案 在autoconf/automake/libtool项目中,您需要运行: libtoolize:此复制/链接一些支持脚本,包括ltmain.sh(这是libtool的主要组成部分). aclocal:它查找您的配置脚本所需的所有M4宏,并制作本地副本以更容易访问. autoheader:可选,如果要使用config.h/AC_CONFIG_HEA
12 2024-04-07
编程技术问答社区
Autoconf和Autotools的替代品?
我是GNU libtool ).我正在从事一个将成为一个障碍的项目.但是,团队的其余成员只是不愿意与 m4 .我得到 this 在我的收件箱中,不是一个,而是四个人: 无论如何,也许有人可以推荐一些基于Python或PHP的东西?我在一棵更大的树的C端工作.我可以确定会出现Python或Php 5,因为它们是先决条件. 解决方案 我听说过关于 cmake 试图解决相同问题的好消息. 在这里是Wikipedia文章 其他解决方案 我正在倾向于被投资的机会,但是,我必须承认,不幸的是,没有真正代替自动工具. Cmake,Scons,Bjam很好. 例如,cmake是自动工具的最流行替代品,具有以下缺点: 不支持GetText.当您需要管理大量翻译和翻译源代码时,这可能是一个真正的问题. 不支持卸载目标.发现您无法卸载安装的程序是非常不愉快的. 没有自动构建 共享和静态库. 文档是非常有限且不好的. 等等. 还有许多其他要点.不幸的是,自动工
8 2024-04-07
编程技术问答社区
用Eclipse CDT建立一个多模块的C项目(即解决方案)。
我正在从Netbeans转移到Eclipse(在Ubuntu 12.0.4上).我有一个C应用程序,该应用程序由库(共享和静态)的几个子项目以及独立可执行文件组成. 我不知道如何创建一个"父"项目foo,其中包含组件项目 Foobar foofoo barfoo 野蛮 理想情况下,我希望在文件夹foo下创建所有"组件项目",以便我有这样的目录结构: /path/to/foo/foobar/(包含foobar项目文件) /path/to/foo/foofoo/(包含foofoo项目文件) /path/to/foo/barfoo/(包含barfoo项目文件) /path/to/foo/barbar/(包含野蛮项目文件) 有人知道我如何使用Eclipse作为IDE(使用CDT)实现此结构? 最后但并非最不重要的一点是,我打算使用自动工具选项创建我的C模块.当我将新的标头/源添加到模块中时,会自动更新生成的自动工具的文件 - 还是需要手动维护自动工
12 2024-04-07
编程技术问答社区
编译时需要BLAS和LAPACK库
我最近下载了GNU八度的最新稳定版本,并试图在我的机器上构建和安装它(Ubuntu 10.0.4 lts 64bit). 当我运行./configure时,我收到了此错误消息: configure: error: You are required to have BLAS and LAPACK libraries 有人知道我从哪里获得这些图书馆? 解决方案 尝试运行此 apt-get install libblas-dev libatlas-dev liblapack-dev 所有图书馆,在这里列出了Ubuntu中八片包装所要求的所有图书馆: http://ppackages.ubuntu . 以相当最大的方式配置的Ubuntu中的八度 - 八度的许多可选部分已打开,这导致了所需的库列表. 要获得八度所需的大多数开发(-dev)软件包,您可以运行: apt-get install octave3.2-headers 安装-dev -li
20 2024-04-07
编程技术问答社区
如何在CMake中像在Autotools中那样检查头文件和库函数?
我目前正在从 autotools 转换为在旧configure.in中,我使用以下行检查了每个标题和库功能以确保存在: # Checks for header files AC_HEADER_STDC AC_CHECK_HEADERS([stdlib.h time.h math.h sys/stat.h errno.h unistd.h fcntl.h signal.h]) # Checks for library functions AC_FUNC_FORK AC_CHECK_FUNCS([time localtime mktime gmtime exit fork chdir atol signal]) AC_FUNC_STRFTIME 这是许多自动工具项目Afaik的事情. 尽管编译器已经检查了必要的标头文件,并且链接器检查库功能,但我的代码仍然需要在配置阶段完成这些检查以正确设置其编译标志的#ifdef HAVE_FOOBAR>>>>>> . 在这种情况
8 2024-04-07
编程技术问答社区
在哪里可以将CFLAG,如-std=gnu99,添加到autotools项目中?
我有一个简单的autotools c项目(不是C ++). cflags(通过检查)似乎是-g -O2. 我希望所有生成的制作文件也将-std=gnu99附加到cflags上,因为我使用for (int i = 0; i @devsolar的答案尚未有所帮助. a configure.ac文件(下图)生成configure脚本(也下面). configure.ac: dnl Process this file with autoconf to produce a
8 2024-04-07
编程技术问答社区
开始使用autotools
有人建议一个人如何开始构建C项目的自动工具? 解决方案 按照 autotools tutorials tutorials tutorial . 您还可以获取 autobook .第4章涵盖了最小的GNU自动工具项目. 其他解决方案 也有: Autotools: a practitioner's guide to Autoconf ,汽车和libtool autotools mythbusters mythbuster 对我来说, autobook 约会了,更难阅读.但是,它仍然包含有趣的章节">写入便携式bourne shell . 此外,请考虑学习文章. 编辑:要用参考,还有 for Ginaters for Ginaters for Ginaters for Ginations for Ginations for Ginations for Ginaters for Ginaters for frompers for Ginatio
12 2024-04-06
编程技术问答社区
Linphone配置导致多个未定义的Autotools宏
我已经下载了linphone opensource并使用mingw构建.我遵循了readme.mingw给出的步骤.当我使用命令" ./autogen.sh"时,我会收到以下错误. + aclocal -I m4 -I /usr/local/share/aclocal -I /share/aclocal aclocal:m4/po.m4:36: warning: macro `AM_PATH_PROG_WITH_TEST' not found in librar y aclocal:m4/po.m4:61: warning: macro `AM_PATH_PROG_WITH_TEST' not found in librar y aclocal:m4/po.m4:78: warning: macro `AM_PATH_PROG_WITH_TEST' not found in librar y aclocal:m4/gettext.m4:170: warning: macro `AM
10 2024-04-05
编程技术问答社区