首页 文章
  • 1 votes
     answers
     views

    makefile可以使用一行构建多个目标吗?

    我有一个makefile,它列出了许多要构建的静态库,每个库都在自己的子文件夹中 . 我在顶级makefile中将它们定义为: LIBS= \ lib1 \ lib2 \ etc... 我正在尝试使用这些名称(例如lib / lib1,lib / lib2)将makefile转换到每个子文件夹中,并构建它找到的每个库的makefile . 我可以使用单个目标,而不是每个库的单独目标吗? 像这样的...
  • 18 votes
     answers
     views

    使用GNU Make同时构建调试和发布目标

    我正在开发一个中型项目,其中包含几个具有相互依赖性的库,我最近将其转换为使用非递归makefile构建 . 我的下一个目标是同时从同一源代码树中构建调试和发布版本(make debug; make release) . 我的第一步是制作包含正确构建标志的调试和释放目标 . 我使用目标特定变量做到了这一点,如下所示:CXXFLAGS = -Wall -Wextra -Werror -DLINUX C...
  • 6 votes
     answers
     views

    如何实现记住上一个构建目标的Makefile?

    假设你有一个带有两个伪目标的Makefile,'all'和'debug' . 'debug'目标用于构建与'all'相同的项目,除了一些不同的编译开关(例如-ggdb) . 由于目标使用不同的编译开关,如果在两者之间切换,显然需要重建整个项目 . 但GNUmake自然不会认识到这一点 . 所以,如果你输入 make all ,你就会得到 Building ... ... 然后,如果你输入 ma...
  • 3 votes
     answers
     views

    制作:设置具有不同目标的目标特定变量

    我正在构建一个将用于构建发布或调试目标库的makefile . 我想将对象和自动生成的依赖文件放入调试或发布目录结构中,具体取决于请求的makefile目标 . 我不想指定一个可测试的make命令行参数(即DBG = 1),但是更喜欢分别运行make -f Makefile或make -f Makefiel dbg用于发布和调试目标目标 . 得到那个部分 . 我知道我不能分配一个特定于目标的变量,...
  • 0 votes
     answers
     views

    如何在并行制作中处理相同目录的不同目标

    问题是关于并行制作w / GNU makefile . 给定如下文件夹结构,目标是提供它支持make make release / debug / clean并行的makefile . 项目文件夹结构: foo +-foo1 +-foo2 +-foo3 makefile可能是这样的: SUBDIR = foo1 foo2 foo3 .PHONY $(SUBDIR...
  • 5 votes
     answers
     views

    如果源文件存在,如何从一个目录进行构建,否则从另一个目录构建?

    我正在修改一个包含6000个源文件的巨大递归makefile项目 . 所有这些都是明确控制的 . 由于我不想复制整个源代码树,我正在尝试创建一个仅包含已修改源文件的新项目,因此如果源树在修改后的树中不存在,则从原始树中提取源代码 . 我已经修改了 ModDir 中的makefile来检查每个文件夹是否存在于本地,如果存在则在该文件夹中执行make . 否则它在 sourceDir 中执行make...
  • 1 votes
     answers
     views

    如何将发布目标添加到Makefile?

    我有以下Makefile,我想配置它默认生成调试版本,并通过指定相应的目标发布版本 . 我正在尝试解决的问题是, - 项目包含单元测试,我希望它们包含在默认构建中,但是从发布中排除,所以我将发布目标添加到Makefile: FC = ifort FFLAGS = -c -free -module modules -g3 -warn all -warn nounused LDFLAGS ...
  • 0 votes
     answers
     views

    用于调试/测试/发布的Makefile树具有多个目标

    结构体: makefile system/ -> makefile -> kernel/ -> -> makefile -> -> src/ -> FutureModules -> -> makefile -> -> src/ userland/ -> makefile -> FutureModules -> -&...
  • 0 votes
     answers
     views

    wild字符%如何在makefile规则中起作用

    我有一个makefile . 我需要在src1和src2下的源文件下在C:/ bin /下构建一组目标 . 让他们按顺序说出来 $ /a.o $ /b.o $ /c.o $ /d.o 在makefile的某些部分 DEST_DIR = C:/ bin SRC_DIR1 = C:/ src1 SRC_DIR2 = C:/ src2 我的规则如下 #规则1 $ /%.o:$ /% . c ...
  • 233 votes
     answers
     views

    如何制作SIMPLE C Makefile?

    我们需要使用Makefile将所有内容整合到我们的项目中,但我们的教授从未向我们展示过如何操作 . 我只有一个文件, a3driver.cpp . 驱动程序从 "/user/cse232/Examples/example32.sequence.cpp" 位置导入一个类 . 就是这样,其他一切都包含在_1189871中 . 我如何制作一个简单的Makefile来创建一个名为 a...
  • 2 votes
     answers
     views

    make:强制使用不同的编译器重新编译相同的对象

    我希望我的makefile构建相同的二进制文件2次,首先用gcc编译然后用mingw编译 . 所以,我写了这个,但它不起作用: OBJ_DIR = obj SRC_DIR = src BIN_DIR = bin INCLUDE = -I./$(SRC_DIR) LIBS = _SRCS = print_current_dir.c test_main.c _OBJS = print_curre...
  • 0 votes
     answers
     views

    如果目标丢失,如何在Makefile中描述将c编译为obj?

    我的项目中有一个库,我想强制gmake只为库文件尚未构建时才为该库构建目标文件 . 目前,在依赖项之后,始终构建对象 . 那么,如果库已经存在,是否可以描述阻止编译的规则? 添加的例子: all: prj.exe @echo build all. prj.exe: main.o libbar.a gcc main.o -lbar -L. -o prj.exe libbar.a:...
  • 0 votes
     answers
     views

    使文件模式%o:% . c

    我在一个更大的项目中有两个文件a.c和b.c.我决定移动源并只添加对象文件a.o和b.o. 如果make文件具有规则%.o:% . c并在make文件中添加a.o和b.o. 我期待投诉a.c和b.c没有找到 . 但它编译没有任何错误
  • 0 votes
     answers
     views

    用于多个源对象编译的Makefile依赖性规则

    如果这是一个有点无聊的问题,我道歉,我一直在寻找并找不到答案 . 我是makefiles的新手,我正在尝试创建一个将各个目录中的多个源文件编译成单个目录中的目标文件然后链接它们的文件 . 它工作正常,但它总是重新编译所有文件,即使我没有更改它们 . 据我所知,只有依赖关系比目标更早时才应该这样做 . 我究竟做错了什么? 这是我的makefile: CC = mpic++ CCU = nvcc A...
  • 0 votes
     answers
     views

    使用Kbuild从不同的内核目录中有选择地构建模块

    我在使用KBUILD选择性地从不同的目录构建模块时遇到了麻烦 . 我有2个内核目录Kernel / kernel-XXX 让驱动程序目录结构如下所示 ----kernel | | | |-----drivers | | | |-----boom | | | |----virtual_driver.c | |...
  • 0 votes
     answers
     views

    如何使用CMake为单个目标编译具有不同选项的不同源文件?

    我想要你的帮助,因为我是一名新手,谈到CMake . 假设我有一个可执行目标T,它取决于源文件A.c,B.cpp和c.cpp . 我想用特定的标志编译A.c并创建目标文件A.o.为简单起见,我们假设B和C将使用g编译,并使用相同的标志集,并且相应的目标文件应创建为B.o C.o.然后我可以链接这些目标文件并使用gcc生成T.我知道我可以使用常规makefile在几个步骤中完成它 . 基本上,我无法...
  • 1 votes
     answers
     views

    使用makefile进行链接的目标文件生成和最佳实践 - C.

    Background 我刚刚开始在LINUX上进行C编程 . 在我的上一个问题中,我询问了为大型应用程序使用makefile的最佳实践 . “SO”用户建议阅读Miller关于递归makefile的文章并避免makefile递归(我使用的是递归makefile) . 我跟着米勒并创建了一个如下所示的makefile . 以下是项目结构 root ...makefile ...main.cpp ....
  • 2 votes
     answers
     views

    GCC链接时间错误 - 没有规则来制定目标

    我是Makefile写作世界的新手 . 我有一个C项目,我想用GCC构建,我可以编写一个非常好的Makefile,它调用 3 other Makefiles ,递归地呈现项目的 in different directory structure ,然后将相应的源文件发送到GCC编译器 . 这一步的结果是我能够看到所有 (5) object files of (5) source files . 对...
  • 48 votes
     answers
     views

    如何将对象文件放在单独的子目录中

    我在尝试使用make将目标文件放在一个单独的子目录中时遇到了麻烦,这可能是一种非常基本的技术 . 我试图使用此页面中的信息:http://www.gnu.org/software/hello/manual/make/Prerequisite-Types.html#Prerequisite-Types 我从make获得以下输出: make: *** No rule to make target `k...
  • 2 votes
     answers
     views

    在依赖项列表更改时重新链接Makefile目标

    我在Makefiles中看到的一个常见问题是,当依赖项列表发生更改时,可执行文件(以及库)就不一定会重新链接 . 例如: SRCS=$(wildcard *.c) CPPFLAGS=-MMD -MP target: $(SRCS:.c=.o) $(CC) $(LDFLAGS) $^ -o $@ -include $(SRCS:.c=.d) 到目前为止,非常好:它会自动处理源文件及...
  • 1 votes
     answers
     views

    如何从Make目标中删除依赖项定义?

    我正在开发一个使用嵌套Makefile构建的大型项目(~3x10 ^ 6行代码) . 我有一个文件( subdirs.mk ),它为所有子目录(可能并行)添加了一些便利规则 . 它包括以下规则: $(SUBDIRS_INCLUDES): $(MAKE) -C $(patsubst %-includes,%,$@) includes SUBDIRS_INCLUDES := $(patsubst %...
  • 6 votes
     answers
     views

    将目标名称传递给makefile中的依赖项列表

    我正在尝试编写一个makefile来在同一目录中构建一组c程序,这些程序具有独立的源代码,但类似的编译规则和共享依赖项(公共头文件) . /path/to/project/ peformance.h vector.h pqvm.cpp quantum/ quantum-tbb.h quantum-sequential.h ...
  • 1 votes
     answers
     views

    Makefile依赖修改检测

    我正在编写一个makefile来处理构建单元ONE和TWO - >构建单元LIB的依赖关系 . “构建单元”是指包含目录src,lib,include和bin的目录,以及用于在src中编译源代码的makefile . 库位于“lib”中,库头文件位于“include”中 . 编译后的二进制文件放在“bin”中 . 构建单元接受“make”,“make all”,“make lint”和“m...
  • 0 votes
     answers
     views

    为项目子目录中的目标创建依赖关系的make规则

    我的论文研究软件的源代码树( R )反映了传统的 research workflow :"collect data -> prepare data -> analyze data -> collect results -> publish results" . 我使用 make 来 Build 和维护工作流程(项目的大多数子目录包含 Makefile 文...
  • 0 votes
     answers
     views

    Makefile列出了依赖项

    在下面的Makefile片段中,makefile行为的正常方式是当foo.o在此处列出依赖项时,如/tmp/foo.o:abc.o xyz.o lmn.o等然后解析make转到列出如何的规则使依赖(abc.o xyz.o lmn.o),但这里目标/tmp/foo.o列出了没有依赖性,即使然后如何执行下一行或它只是被忽略 . 请尽快解释这个行(%.o:$$(addsuffix /%.c,foo ba...
  • 2 votes
     answers
     views

    OCaml Makefile:没有规则来制作目标

    我正在关注这个OCamlbuild example,因此创建了下面的Makefile: OCB_FLAGS = -use-ocamlfind -I src -I lib OCB = ocamlbuild $(OCB_FLAGS) check: ocamlfind query core async clean: $(OCB) -clean byte: $(OCB) main.byte native...
  • 0 votes
     answers
     views

    使用make构建我的项目

    我正在努力改进Bitfighter长期萎缩的Linux构建过程,并且遇到make问题 . 我的过程实际上非常简单,因为make(几乎)是通用的,所以如果可以的话,我想坚持下去 . 下面我附上了我当前的Makefile,它有效,但很笨拙 . 我正在寻找改进它的方法,并且此时有三个具体问题 . First ,该项目可以构建多个选项 . 我们来看看这个例子的调试和专用 . 专用选项将排除所有UI代码,并...
  • 159 votes
     answers
     views

    如何将命令的输出分配给Makefile变量

    我需要有条件地执行一些make规则,只要安装的Python大于某个版本(比如2.5) . 我以为我可以做一些像执行: python -c 'import sys; print int(sys.version_info >= (2,5))' 然后在 ifeq make语句中使用输出('1',如果确定,否则为'0') . 在一个简单的bash shell脚本中,它只是: MY_VAR=`py...
  • 4 votes
     answers
     views

    crt1.o函数_start中对'main'错误的未定义引用

    我的Makefile有问题 . 我正在尝试从2个文件创建程序 - main.cpp包含main函数,modules.c包含main()中调用的函数的定义 . modules.c只包含函数定义,没有main函数 . 我的Makefile如下: CC := gcc CXX := g++ LINK := g++ -Wall CFLAGS := -g CXXFLAGS := -g TARGET = ...
  • 0 votes
     answers
     views

    / usr / bin / ld:尝试链接时找不到-lcrypto

    gcc -o clxd -m64 -L / usr / local / lib64 -L / usr / lib64 -L / usr / lib64 / nptl -Wl,-rpath,/ home / y / lib64 -ldl -lrt -lpthread -lstdc - lgcc -lc -lm -lev -L / home / y / lib64 -Wl,-Bstatic -lb...

热门问题