草庐IT

Makefile

全部标签

linux - 有充分的理由不利用 makefile 顶部的 '#!/bin/make -f' 来提供可执行的 makefile 吗?

主要是为了娱乐,我在我的$HOME/bin目录中创建了一个名为rebuild.mk的makefile,并使其可执行,文件的第一行是:#!/bin/make-f##Commentsonwhatthemakefileisfor...all:${SCRIPTS}${LINKS}......我现在可以输入:rebuild.mk这会导致make执行。除此之外,没有永久利用它的原因是什么:makefile绑定(bind)到一个目录,所以它确实不适合放在我的主bin目录中。有没有人见过这种被利用的把戏?收集一些评论,并提供更多背景信息。NormanRamsey报告说Debian中使用了这种技术;这很

在深度嵌套的源/makefile 中正确包含 (POSIX) 库

长话短说:我们有一个大型SDK,其中包含约1Gb的毛茸茸的代码,这些代码由ElbonianCodeSlaves破解在一起,由RPC、共享内存、互斥/信号量和spit的颤动网格拼接在一起。它是在Linux机器上为嵌入式SoC目标编译的。作为改进部分代码的一部分,我想将POSIX信号量添加到其中一个源中,它包含在一些RPC例程中。但是,只需编写一些有效的代码并坚持#include在顶部当然不足以启用编译。所需要的是makefile中的特殊标志,具体取决于您阅读的内容,它可以是任何/所有:-pthread-lpthread-lpthreads-lrt-rt我没有太多编写makefile的经验

linux - 如何在linux中使用我自己的动态库(Makefile)

我有一个专为linux设计的c++项目(g++/rawMakefile),我过去常常静态链接所有能正常工作多年的东西。现在我想构建静态和动态链接的二进制文件。以下命令在我的Makefile中用于构建动态库(比如libtest):$(CXX)-shared-Wl,-soname,libtest.so.1-olibtest.so.1.0.0$(LIBTEST_OBJS)输出是libtest.so.1.0.0,其名称为libtest.so.1我至少找到了一个符号链接(symboliclink)libtest.so-->需要libtest.so.1.0.0来链接实际使用上面生成的libtest

linux - 具有相对路径的 Makefile?

我在GentooLinux上的Makefile有问题。这是我的文件夹层次结构:Development->GLTools->include->src->Triangle->triangle.cpp->Makefile和我的Makefile:MAIN=triangleSRCPATH=./SHAREDPATH=../GLTools/src/SHAREDINCPATH=../GLTools/include/LIBDIRS=-L/usr/local/libINCDIRS=-I/usr/include-I/usr/local/include-I/usr/include/GL\-I$(SHAREDI

c++ - Makefile - 找不到共享库

我有一个C++Linux项目的Makefile:MODE?=dbgDIR=../../../../../somdir/$(MODE)SRC_FILES=a.cppb.cppH_FILES=a.hLDFLAGS+=-L$(DIR)/lib/linux'-Wl,-R$$ORIGIN'CPPFLAGS=-I$(DIR)/includeLIBRARIES=-lsomesoifeq(rel,$(MODE))CFLAGS=-Wall-g-DNDEBUGelseCFLAGS=-Wall-ansi-pedantic-Wconversion-g-DDEBUG-D_DEBUGendifsample:$(S

Linux 内核 makefile cscope 目标

当我通过发出makecscope生成Linux内核cscope数据库时,我得到了数据库文件以及具有相对路径的文件列表。这对我来说是个问题,因为稍后当我从内核以外的任何目录将外部内核的数据库附加到vim编辑器中时,我可以轻松地搜索特定符号BUT我无法打开包含该符号的文件.我已经编写了下一个bash脚本#!/bin/bashSNAME="$0"SNAME=${SNAME##*/}functionusage(){echoGenerateLinuxkernelcscopedatabaseecho"Usage:$SNAME[PATH]"echo-n"Youmustprovidethisscrip

linux - 如何在 Makefile 中找到基础架构?

无论我是在32位还是64位机器上运行,我都想在Makefile中找到。是否有任何可以从Makefile中简单访问的宏或环境变量?我在网上找到了这个相关的答案:LBITS:=$(shellgetconfLONG_BIT)ifeq($(LBITS),64)#do64bitstuffhere,likesetsomeCFLAGSelse#do32bitstuffhereendif但是,我怀疑所有系统中的getconf工具是否可用。 最佳答案 tl;dr;如果您只需要以可移植的方式在C中获取long类型的位数,那么可以使用getconfLON

linux - 用于 arm-linux-gcc 的 C/C++ 目标的简单 makefile

我想使用arm-linux-gcc编译器套件[arm-linux-gcc(Buildroot2011.08)4.3.6]交叉编译一个简单的ARM架构程序。我尝试使用一个简单的makefile来编译C代码,并使用另一个简单的makefile来编译C++代码。例如,下面复制了我的C代码生成文件,但它没有创建用于在我的嵌入式系统上运行的ELF二进制文件。主机系统是x64GNULinux。这是我为C程序编写的非常简单的makefile的list:CC=arm-linux-gccCFLAGS=-Wallmain:test.oclean:rm-ftesttest.o上面复制的makefile只创建

c - 如何通过makefile包含头文件

我知道可以在makefile中使用一个标志来在所有正在编译的文件中包含一个头文件,就像有一个-D标志来包含一个定义。什么标志正是用于包含头文件。我不记得知道。 最佳答案 在你的编译命令中,你可以使用-include选项:gcc-omain-includehello.hmain.cpp 关于c-如何通过makefile包含头文件,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/113

linux - srlua makefile 错误 lua.h No such file or directory

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。这个问题似乎不是关于aspecificprogrammingproblem,asoftwarealgorithm,orsoftwaretoolsprimarilyusedbyprogrammers的.如果您认为这个问题是关于anotherStackExchangesite的主题,您可以发表评论,说明问题可能在哪里得到解答。关闭8年前。Improvethisquestion我正在尝试使用srlua将我的lua文件编译为可执行文件,但我遇到了一个问题。anthony@anthony-linux:~/Dow