草庐IT

multiple-makefiles

全部标签

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

c - Linux 3.5 : Safe to `read(2)` from same fd `open(2)` `/dev/urandom` from multiple threads?

这样做安全吗:intfd;voidthread_main(){charbuf[M];ssize_tr=read(fd,buf,M);assert(r==M);...}intmain(){fd=open("/dev/urandom",O_RDONLY);for(inti=0;i即:从主线程open(2)ing"/dev/urandom"后,read(2)是否安全code>来自它与不同线程上下文不同步?断言在什么情况下会触发?两个线程会得到相同的数据吗?会出什么问题? 最佳答案 只要您的代码不会崩溃,它就是安全的。assert永远不会触

c++ - Linux C++ : How to properly use template specializations across multiple files?

我有一个奇怪的问题。在Windows上,使用VisualStudio2010以及英特尔编译器,一切都按预期链接。但是当我尝试在Linux上使用CLang3.0编译我的代码时,它会编译(如果我只使用一个CPP文件,它也会链接并运行)但不会链接。消息是有多个符号定义,指的是模板实例化。例如,考虑跨多个编译单元共享的头文件中的以下两行:templatevoidmyFunc(Tin){}templatevoidmyFunc(intin){}现在从Linux链接器我会得到一些类似的东西:"filexyz":Multipledefinitionof"myFunc(intin)",firstdefi

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

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

linux - 在 Makefile 中没有默认目标是不是很糟糕

有这样的东西是不好的做法吗:all:在Makefile中,强制用户指定目标,而忽略默认目标? 最佳答案 all不一定是默认目标。默认目标是您的makefile中定义的第一个目标。此外,如果您将空目标保留为默认目标(并确保在makefile中的其他地方没有其他具有规则的all目标),make的行为可能有点费解。我建议让默认行为打印适当的错误消息,例如:error:@echo"Pleasechooseoneofthefollowingtarget:compile,install,uninstall"@#Alternatively:"Pl

linux - 如何安排一个 Makefile 来编译一个包含多个 .c 文件的内核模块?

如何安排一个Makefile来编译一个包含多个.c文件的内核模块?这是我当前的Makefile。它是由KDevelop自动生成的TARGET=nlb-driverOBJS=nlb-driver.oMDIR=drivers/miscEXTRA_CFLAGS=-DEXPORT_SYMTABCURRENT=$(shelluname-r)KDIR=/lib/modules/$(CURRENT)/buildPWD=$(shellpwd)DEST=/lib/modules/$(CURRENT)/kernel/$(MDIR)obj-m+=$(TARGET).odefault:make-C$(KDIR

Makefile 教程中令人困惑的 Sed 单行代码

谁能用英语解释这个sed单行代码(越详细越好)?@sed's/\($*\)\.o[:]*/\1.o$@:/g'$@;\rm-f$*.d;[-s$@]||rm-f$@这是本教程的一部分:http://mad-scientist.net/make/autodep.html我有一组非常量源文件,并希望根据我的源文件中拼写的内容(包括)自动生成我的依赖关系树。在那之前我一直在很好地学习教程......附言我对sedselect/replace有基本的了解,但我对匹配字符串和所有重定向层感到困惑...。我还通读了一次makefile教程,因此具有标准生成文件... 最

linux - Makefile命令替换问题

rebar给定不同的配置文件时不会自动重建文件。因此,我尝试在Makefile级别上执行此操作:REBAR=./rebarREBAR_DEBUG=$(REBAR)-Crebar.debug.configREBAR_COMPILE=$(REBAR)get-depscompileLAST_CONFIG:=$(catconfig.tmp)PLT=dialyzer/sqlite3.pltall:config_normalcompilecompile:$(REBAR_COMPILE)test:$(REBAR_COMPILE)eunitclean:-rm-rfdepsebinprivdoc/*.e

c++ - Linux:从给定的源文件自动创建 C++ makefile

我有一个这样的项目结构:src/main.cppsrc/Folder/this.cppsrc/Folder/that.cppsrc/NewFolder/foo.cp//etc.此外,我需要一些库以便我可以链接,例如lboost_system。我怎样才能简单地用这些给定的信息创建一个makefile?我一直在阅读有关手动创建makefile、CMake等的信息,但在我看来这太复杂了!没有任何工具可以让我指定以下信息:Sourcefolder:/home/bla/src/AdditionalLibs:lboost_systemCompilerFlags:-std=c++0x(orwhate