如何将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
26 2024-04-10
编程技术问答社区
AM_LDFLAGS和LDFLAGS的区别是什么?
我想知道am_ldflags和ldflags之间有什么区别,因为我面临错误 error: AM_LDFLAGS must be set with '=' before using '+=' 当我在foreach循环中使用am_ldflags 我的制作文件代码如下所示: program_INCLUDE_DIRS := /usr/bin/PR__bin program_LIBRARY_DIRS := /usr/lib/PR__lib CFLAGS += $(foreach includedir,$(program_INCLUDE_DIRS),-I$(includedir)) AM_LDFLAGS += $(foreach librarydir,$(program_LIBRARY_DIRS),-L$(librarydir)) 解决方案 如果该错误抱怨说它在抱怨的内容(我完全不确定为什么会/应该是),那么我认为该解决方案会像添加 AM_LDFLAGS = 作
12 2024-04-09
编程技术问答社区
cygwin $'\r': 命令未找到错误
我对项目进行了一些修改,在调试下效果很好.当我尝试构建它而无需调试时,它显示错误,无法修复它. $ make Making all in third_party make[1]: Entering directory '/cygdrive/c/Users/alimjan/Documents/fast-hlground/slim-2.2.7/third_party' Making all in zdelta-2.1 make[2]: Entering directory '/cygdrive/c/Users/alimjan/Documents/fast-hlground/slim-2.2.7/third_party/zdelta-2.1' gcc -DHAVE_CONFIG_H -I. -I../../src -Wall -export-dynamic -O3 -fopenmp
22 2024-04-08
编程技术问答社区
使用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
编程技术问答社区
自动制作和项目依赖性
我有一个我想使用Automake构建的项目.该项目由不同的组件或模块组成,并且有模块间依赖项需要以特定顺序构建项目. 例如: project dir/ module1 (core C shared lib) module2 (C++ shared lib wrapper around module 1) module3 (C++ application with dependency on module2) module4 (C library with dependency on module1) module5 (C application with dependency on module4) 我对汽车是相对较新的,但是我(几乎)知道如何使用它成功构建一个项目. 我想拥有一个"主"项目文件(如果可能的话),该文件指定项目模块的构建顺序,运行单元测试并在整个构建过程中失败: 其中一个模块无法构建 其中一个模块失败了单位测试 我将
10 2024-04-08
编程技术问答社区
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
22 2024-04-07
编程技术问答社区
为什么我不能用autoconf2.6x构建autoconf,反正它的版本比2.6要新。
我的系统是基于中心的. 我之所以尝试构建AutoConf的原因是有人告诉我我可以尝试构建它以解决另一个问题,您可能会发现使用此链接为什么Autogen.sh即使使用正确的Autoconf? [mirror@home auto]$ cd autoconf/ [mirror@home autoconf]$ ls AUTHORS cfg.mk ChangeLog.3 COPYINGv3 lib man README-hacking bin ChangeLog.0 configure.ac doc m4 NEWS tests BUGS ChangeLog.1 COPYING GNUmakefile maint.mk README THANKS build-aux C
18 2024-04-05
编程技术问答社区
X-I.:未找到命令,建立某类软件失败,怎么了?
错误消息如下: ./libtool: line 1129: X-I.: command not found ./libtool: line 1129: X-DLT_CONFIG_H=: command not found ./libtool: line 1129: X-DLTDL: command not found ./libtool: line 1129: X-I.: command not found ./libtool: line 1129: X-I.: command not found ./libtool: line 1129: X-Ilibltdl: command not found ./libtool: line 1129: X-I./libltdl: No such file or directory ./libtool: line 1129: X-I./libltdl: No such file or directory ./libtool
18 2024-04-05
编程技术问答社区
VPATH源外构建
背景 我们为MATLAB和OCTAVE构建.mex文件.源代码对于MATLAB和八度范围都是常见的,但在这里和那里进行了轻微的修改(在代码中通过宏条件来照顾).供参考,源结构为: root_dir/ | --------------------------------------------------- | | | | configure.ac mex/ Makefile.am non-mex-source/ | ------------------------------ |
12 2024-04-04
编程技术问答社区
如何通过autoconf/automake来解决boost库/头的包含问题?
我是Autom4Te的新手,我正在尝试使用AutoConf/Automake在多个体系结构上构建和链接C ++程序.使链接复杂化的事实是,项目需要提升(文件系统,系统,program_options). 我正在使用boost.m4(来自不幸的是,链接仍然失败,让我感到困惑. 这些是configure.ac的相关行: AC_CONFIG_MACRO_DIR([m4]) # ... AC_PROG_CXX AC_PROG_LIBTOOL # ... BOOST_REQUIRE([1.41.0]) BOOST_FILESYSTEM BOOST_SYSTEM BOOST_PROGRAM_OPTIONS # ... 和src/Makefile.am: bin_PROGRAMS = phenomatrix phenomatrix_CXXFLAGS = $(BOOST_CPPFLAGS) phenomatrix_LDFLAGS = $(BOOST_LDFLAGS) $(BO
12 2024-04-02
编程技术问答社区
将生成的文件添加到分发中的最佳方法?
我使用AutoConf/Automake有一个非常复杂的(C ++)项目,其中包括一些"生成"文件(foo.yy-> foo.cc).实际构建是使用"控制脚本"(Gentoo .Ebuild for熟悉该概念的人)完成的,在各种平台上. 现在,目标平台之一不能正确支持foo.yy-> foo.cc步骤,并且必须使用在Linux框上生成的foo.cc文件. 现在我有两种方法可以解决: 1)在foo.cc中检查到项目存储库中,并以某种方式patch configure.in(或其他)以包含时间戳检查foo.yy/foo.cc上,如果在有关目标上运行,则会生成可理解的错误消息使用过时的foo.cc; 2)在foo.cc中检查到控制脚本存储库中,并具有脚本控制时间戳并提供错误消息. 我可以做2)没问题,但是我认为这不是放置foo.cc的正确位置. 另一方面,我对AutoConf/Automake不了解,并且不知道如何在configure.in中实现时间戳检查/
18 2024-03-31
编程技术问答社区
我如何在C ++ Autotools项目中使用不同版本的G ++编译
我有一个大型Autotools项目,子目录中的一个代码使用G ++ -4.9来编译,其他代码使用G ++ 8.2. 我的问题是如何用不同版本的G ++编译整个项目. 我已经看到一些相关的问题是更改其他G ++编译器,一般答案是设置环境变量或make选项. 但是,我的问题是同时使用G ++ 8.2和G ++ 4.9编译. 我希望有一些解决方案可以设置 makefile.am 喜欢: noinst_PROGRAMS=foo bar foo_CXX_COMPILER=/usr/bin/g++-4.9 bar_CXX_COMPILER=/usr/bin/g++-8.2 编辑: 我尝试过的更多细节: subroject中的第三方库将在使用g++-4.9 -std=c++11>编译时显示许多警告" auto_ptr已弃用",但没有任何错误并执行良好. 它的编译很好,没有错误,并警告g++-4.9 -std=c++98 当我用g++-8.2编译时,它
24 2024-03-21
编程技术问答社区
无法链接音频库
我已经使用Portaudio库进行了一个简单的Makefile项目,并且该项目在以下makefile方面运行良好: CXXFLAGS = -O2 -g -Wall -fmessage-length=0 OBJS = RecAudio.o LIBS = ../Portaudio/portaudio/lib/.libs/libportaudio.a -lpthread -lrt -lasound #LIBS = -lportaudio -lpthread -lrt -lasound TARGET = RecAudio $(TARGET): $(OBJS) $(CXX) -o $(TARGET) $(OBJS) $(LIBS) all: $(TARGET) clean: rm -f $(OBJS) $(TARGET) 我将尝试将Portaudio库集成到使用Automake工具创建的另一个项目中.我以这种方式在makefile.am文件中添加
18 2024-03-21
编程技术问答社区
旧的.Po文件引用旧的目录,如何重新开始?
简介 我只是删除了目录nested并在我的Makefile.am 中删除了对其的引用 我正在运行./configure && make,我得到以下内容: *** No rule to make target 'nested/main.c', needed by 'main.o'. Stop. 我如何运行make以使其不引用旧目录? 补充信息 我很好奇我是否能找到此参考位置,所以我做了grep -r nested .我认为唯一相关的热门是: ./src/.deps/main.Po:main.o nested/main.c /usr/include/stdc-predef.h /usr/include/stdio.h \ 解决方案 从OP的评论中回答此问题: 运行 make distclean
12 2024-03-21
编程技术问答社区
如何使用旧的AutoConf/Automake项目打包RPM
我正在尝试包装用C编写的SystemD服务的RPM,并由AutoConf和Autotools管理.当我尝试按照项目的readme.md中指示的sudo make rpm命令打包rpm时,命令错误以: cp: cannot create regular file '/root/rpmbuild/SOURCES': No such file or directory 我如何配置make目标以查看$HOME/rpmbuild/SOURCES(rpmbuild eactery is)而不是在root home目录中? 之后实际是什么是$ rpm_build_root?,我已经检查了~/.rpmmacros,它确实包括了 %_topdir %(echo $HOME)/rpmbuild 所以我不确定我在做什么错. 对于上下文,我运行./bootstrap,./configure,sudo make和sudo make install在尝试sudo make rpm之前
20 2024-03-21
编程技术问答社区
autoconf和automake流程图中的哪些过程是由谁和何时执行的?
在AutoConf和Automake的流程图中,来自 Autoscan Alocal AutoHeader autoconf Automake 配置 make 执行了哪些过程 由软件程序的用户下载了软件程序的分发后 由该党从其源代码中创建软件程序的分布(以及谁可能是软件程序的作者)? 我问这个问题,因为我记得在某些软件程序的用户下载其源分布之后,我运行的命令从源分布中构建可执行文件是autoconf,./configure和make.因此,我想流程图中的其他过程是由软件程序的作者创建发行时执行的.我是正确的吗? 谢谢. 解决方案 在下载软件程序的分布后,由软件程序的用户执行了哪些过程 这取决于您想做什么.很多人只有在基本构建命令之后才能配置,构建和安装软件包: # ./configure; make; make install ,即使您正在修补源,在这种情况下,您也无需调用autoreconf,autoconf,autom
14 2024-03-21
编程技术问答社区
Autoconf附加到输出变量和程序特定的LIBS
在configure.ac中使用autoconf我需要附加到输出变量. 特别是我想为我的每个程序(myProgram1和myProgram2 in the Makefile.am中的myProgram1和myProgram2)附加到LIBS变量.让我们想象myProgram1需要一个-lboost_python,而myProgram2需要-losg. 本质上,有些程序需要某些LIB,而其他程序则不需要.这是我在做什么的示例.当然,AC_SUBST从我理解的情况下进行分配(= vs +=),因此不起作用. AC_CHECK_LIB([boost_python], [main], [AC_SUBST([myprogram1_LIBS], ["-lboost_python"]) AC_DEFINE([HAVE_LIBBOOST_PYTHON], [1], [Define if you have libboost_python])
14 2024-03-21
编程技术问答社区
在solaris中,PKG_CHECK_MODULES被打破。
我的项目需要使用autotools检查依赖项并安装相同的依赖性.我声明在configure.ac 中使用以下宏的依赖性 echo -n "checking if libxml2 is present... " PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6.19], [echo "yes (features requiring libxml2 enabled)" AC_DEFINE(HAVE_LIB_XML, 1, [define if libxml2 is present])], [echo "no"] ) 宏在GNU/Linux中按需要工作. ,但某种程度上它在Solaris中失败,以下错误 checking if libxml2 is present... ./configure: line 11586: syntax error near une
20 2024-03-21
编程技术问答社区
如何用autotool在独立的目录中构建
我有一个工作目录如下: ./ | ----- helloworld/ | ----- | ---- main.cpp | ----- | ---- makefile.am | ----宠物/ | ----- | ---- PET.H | ----- | ---- pet.cpp | ----构建/ | ---- configure.ac | ----- makefile.am 我想使用自动工具构建makefile,然后在构建目录中构建项目. ./configure.ac 是 # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ([2.69]) AC_INIT([Hello], [1.0], [qub@oregonstate
10 2024-03-21
编程技术问答社区