Articles of makefile

编译Lua – 创build.so文件?

我在Centos 6.5上编译Lua 5.2.3,编译/安装正常。 但是,我还需要开发库来编译另一个程序。 我通常会这样做安装这些: yum install lua-devel 问题是,安装Lua 5.1共享库,而不是5.2.3的。 我可以从Centos的回购库中运行Lua 5.1,但如果这是一个简单的事情(知道的人)来做最新的版本,那么我会很感激有人给我指路。 对我来说,Linux makefiles仍然有点呃,你知道… 编辑 我很久以前发现这个网站 – http://lua-users.org/lists/lua-l/2006-10/msg00091.html – 它提出了对makefile的一些改变,但是当我运行它的时候我得到了这个现在: gcc -fPIC -o liblua.so -shared lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o lauxlib.o lbaselib.o lbitlib.o lcorolib.o ldblib.o liolib.o lmathlib.o loslib.o lstrlib.o ltablib.o […]

Linux上的C ++ makefile具有多个* .cpp文件

我正在尝试使用多个文件makefile。 有人能帮我吗? 我有的文件是file1.cpp,file2.h和main.cpp file1.cpp包含我的function。 file2.h包含我的函数的声明。 main.cpp [在代码中包含file2.h] file1.cpp [在代码中包含file2.h] 我做了 all: main gcc -g -Wall -o main main.cpp 但是当我尝试编译时,却给了我大量的错误。 我的代码在日食上工作得很好。

构build一个makefile依赖/inheritance树

道歉,如果我解释这很糟糕,或者要求出血明显,但我是Linux内核的新手,有点在深处… 我们有一个embedded式Linux系统,这个系统包含一个非常糟糕的SDK,其中包含数百个文件夹,大多数文件夹包含一个rules.make,make,make.config或者一些变体,而根文件夹包含一个“master”makefile&rules.make,这意味着你可以从根文件夹中input“make sysall”,然后构build整个包。 到目前为止这样好,但试图debugging它是有点问题,因为文档会说: “ 要让内核输出debugging消息,只需定义#outputdebugmessagesplz ” 好的,但是这些东西中的一些是在“master”make / rules文件中定义的,其中一些是在子make / rules / config文件中定义的,一些是在.h文件中定义的。当然,它更好打开/closures这些东西从“顶部”make.config而不是修改个别.h文件,然后必须记得再次closures它们。 所以我认为从主“make”文件开始recursion地构build一个树,并遵循它所做的一切,定义或重新定义的所有东西,等等,但是似乎并没有一个简单的方法呢? 我假设我缺less一个“make”选项,把这个信息吐出来,或者只是makefile / config的用法。

如何在Linux中使用gcc的旧版本

在Linux中,我试图编译使用-fwritable-strings选项的东西。 显然这是一个gcc选项,在新版本的gcc中不起作用。 我在我的系统上安装了gcc-3.4,但我认为新版本仍然在使用,因为我仍然得到错误,说它无法识别命令行选项-fwritable-strings。 我怎样才能使用旧版本的gcc?

如何调用位于其他目录中的Makefile?

我正在尝试这样做: 我想从位于不同目录的shell脚本调用一个make( Makefile存在于其他目录中,可以使用abcpath)。 我该怎么做呢? 由于shell脚本不允许我进入Makefile目录并执行make ,我怎样编写shell命令(通过给Makefile执行path)来执行make ?

在Makefile安装中移动目录的最佳方法是什么?

我目前在我的Makefile中使用通常的技术来安装单个文件: install: install -D executable ${BIN_DIR} 但是我只是遇到了一个情况,我需要将整个目录及其下的所有文件移动到位。 cp -r是最好的方法,还是有更多的linux-y / unix-y方式来做到这一点?

如何针对旧版本的库进行configuration/制作/安装?

我试图安装一个软件( moddims )取决于“Imagemagick 6.3.9+” – 我试图安装ImageMagick(6.5.4-5)的最新版本,但得到了以下错误,当我试图“使“moddims: mod_dims_ops.c: In function 'dims_smart_crop_operation': mod_dims_ops.c:34: error: too few arguments to function 'ParseGravityGeometry' 据推测,函数签名在ImageMagick 6.3.9和当前版本之间有所变化。 我想尝试安装moddims对旧版本的ImageMagick – 但我想安装ImageMagick 6.3.9而不会干扰已经安装的6.5.4-5版本。 我可以使用什么./configure咒语a)安装旧版本的ImageMagick,以免覆写或干扰我的现代版本,b)编译moddims以使用旧版本? 我在OSX上,但是当我以后需要在Linux生产服务器上安装moddim时,我预计会遇到同样的问题。

Makefile:没有规则做目标。 停止

我是Makefile新手。 我必须编写一个Makefile来构build一个共享库。 CC =g++ CFLAGS =-fPIC -Wall -Wextra -c LDFLAGS =-shared RM =rm -rf TARGET_LIB =lib/Automat.so SRC_DIR =src/ LIB_DIR =lib/ DEP_DIR =dep/ SRCS=IFSM.h IState.h ITransition.h FSM.h State.h Transition.h Wildcard.h PrimeTransition.h SingleTransition.h Exception.h Type.h Error.h OBJS=$(SRCS:.h=.o) .PHONY: all all: $(TARGET_LIB) $(TARGET_LIB): $(SRC_DIR)$(OBJS) $(CC) $(LDFLAGS) -o $@ $^ $(SRC_DIR)$(SRCS:.h=.d):%.d:$(SRC_DIR)%.h $(CC) $(CFLAGS) -MM $< > $(DEP_DIR)$@ include $(SRCS:.h=.d) […]

如何安装交叉编译杯到目标板?

我交叉编译杯子1.7.0 for sitara arm linux 6 我跟着 ./configure –host=arm-linux-gnueabihf –disable-gssapi –prefix=/media/rootfs make make install 所有的杯子相关的文件都会自动保存在SD卡中,但是在inputcupsd命令时显示错误,而不是启动cups服务器 cupsd: Child exited on signal 1. 在检查/etc/cups/cupsd.conf时,configuration文件中有几个path /media/rootfs/var/run/cups/cups.sock 代替 /var/run/cups/cups.sock 1)如何安装这个编译的杯子目标板没有 – 前缀? 2)交叉编译是否有缺失的步骤? 任何帮助将是感恩。 这是Makefile # # "$Id: Makefile 11107 2013-07-08 13:47:51Z msweet $" # # Top-level Makefile for CUPS. # # Copyright 2007-2013 by Apple Inc. # Copyright […]

从Linux Makefile打开一个terminal

我们可以使用makefile或c文件从现有terminal打开一个新的terminal选项卡或窗口。 如果是的话如何? 预先感谢回复。 PS我想这样做,因为首先在terminal中我想运行服务器文件,然后我想要打开新的terminal,并在那里运行客户端的文件。 从第二个terminal,我想继续运行脚本。