草庐IT

Makefile

全部标签

c++ - 修改 Makefile 以支持 c++11

我能够使用带-std=c++0x选项的gcc编译单个文件。但是我不能通过makefile来做到这一点。这是我的makefile中的一组标志(在make之后提示c++11关键字):MACHINE=$(shellecho`uname-s`-`uname-m`|sed"s///g")CCC=CCCCC=g++CFLAGS=-O3CFLAGS=-std=c++0xCFLAGS=-pg-D_DEBUG-g-c-WallLFLAGS=-OLFLAGS=-pg-g我错过了什么?编辑:我将其更改为以下内容,但我仍然遇到编译错误,这是我在命令行gcc调用中没有得到的。CXXFLAGS=-O3-std=c

c++ - 简单的 makefile 生成实用程序?

有谁知道通过扫描目录中的源文件来生成makefile的工具吗?这可能是幼稚的:无需检测外部依赖使用默认编译器/链接器设置 最佳答案 您可以编写一个Makefile来为您完成此操作:SOURCES=$(shellfind.-name"*.cpp")OBJECTS=$(SOURCES:%.cpp=%.o)TARGET=foo.PHONY:allall:$(TARGET)$(TARGET):$(OBJECTS)$(LINK.cpp)$^$(LOADLIBES)$(LDLIBS)-o$@.PHONY:cleanclean:rm-f$(TAR

c++ - 要求程序员多久编写一次 makefile 文件?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。makefile对于程序员来说是高级问题还是通用问题?对于C++程序员,他多久会被要求编写一个makefile文件?

c++ - 如何使用常规 makefile 构建依赖于 boost 的项目?

我正在做一个c++项目,我们最近需要在其中包含一小部分boost。boost部分真的很小(Boost::Python),因此,使用bjam来构建一切看起来有点矫枉过正(此外,从事该项目的每个人都对make感到满意,并且对jam一无所知)。我已经做了很多测试,但我找不到将前面提到的库包含在我的makefile中并使构建成功的方法。非常感谢您的所有帮助。:) 最佳答案 您可以使用Boost的bcputility仅提取您需要的Boost子集。这将最大限度地减少构建时间和大小。不过,这并没有回答您的问题。您可能需要考虑单独构建Boost.P

c++ - 如何有条件地将文件包含到 Makefile 中?

考虑以下Makefile:#INCL=-I../include\-ICPPFLAGS=$(DEFS)$(INCL)CXXFLAGS=-O0-g-Wall-fmessage-length=0SRCS=$(wildcard*.cpp)OBJS=$(SRCS:.cpp=.o)all:$(OBJS)%.o:%.cpp$(CXX)$(CPPFLAGS)$(CXXFLAGS)-c-o$@$$@clean:rm-f$(OBJS)rm.depend-include.depend此Makefile使用g++-M命令创建一个#include依赖链,并包含它。这可能是一个相当漫长的过程。问题是即使调用了ma

c++ - makefile 自动删除 .o 文件

我在大学里学习C++类(class),他们希望我们手动输入所有测试文件...但是我知道有一种方法可以做到这一点,这就是我最终得到的结果current(http://pastebin.com/6d9UtKM4)生成文件。我的问题是,为什么这个makefile在完成后会自动删除它用于编译的所有.o文件?它不会杀死我,但我想保留.o文件。我已经粘贴了makefilehere(http://pastebin.com/6d9UtKM4)。我还粘贴了运行“maketests”的当前结果here(http://pastebin.com/h3Ny3dib)。(请注意该页面底部自动删除所有.o文件的部分

c++ - 如何在 Makefile 中正确包含 -Wl,-rpath,$ORIGIN 链接器参数?

我正在linux(Ubuntu16.04)上准备一个c++应用程序,使用我动态链接的几个poco库。我的项目文件夹包含:include、bin、lib、src和build文件夹以及相关的Makefile。到目前为止,我使用了以下从/usr/local/lib获取库的MakefileCC:=g++#FoldersSRCDIR:=srcBUILDDIR:=buildTARGETDIR:=bin#TargetsEXECUTABLE:=C++_APPTARGET:=$(TARGETDIR)/$(EXECUTABLE)SRCEXT:=cppSOURCES:=$(shellfind$(SRCDIR

C++ 使用 makefile 链接到库(newbe)

我正在尝试了解如何在我的C++项目中使用非标准库。我有几个问题。假设我想使用POCO库。所以我下载了它并使用make(静态构建)构建它。现在我有一堆.o文件和.h文件。不同目录下有一个Path.h文件和一个Path.o文件。现在我想在我的代码中使用这个模块。所以我使用#include"Poco/Path.h"包含文件。我是否必须修改makefile并将Path.o添加到我的目标?当我使用标准库时会发生什么?那些只在头文件中可用吗?我知道模板代码不能预编译。剩下的呢? 最佳答案 除了.h和.o文件,您可能还会有一个或多个libXXX.

c++ - 将目录中的所有 cpp 文件编译成单独的可执行文件的 Makefile

我现在正在学习C++。我想要一个将当前目录中的所有cpp文件编译为单独的可执行文件的makefile。例如:在一个目录下有3个c++文件,分别是examp1.cpp、examp2.cpp和examp3.cpp。我想要一个将编译和链接它们并提供examp1.exe、examp2.exe和examp3.exe的makefile我已经创建了一个bash脚本来编译所有这些脚本并创建exe,但我认为;那不是执行此操作的确切方法。我有一个“.c”的Makefile,但它在这里似乎不起作用。它只是创建目标文件,而不是实际链接它。具体如下:SRCS=$(wildcard*.c)OBJS=(SRCS:.

c++ - Makefile 中的条件表达式

我知道您可以在makefile中使用如下if语句:foo:$(objects)ifeq($(CC),gcc)$(CC)-ofoo$(objects)$(libs_for_gcc)else$(CC)-ofoo$(objects)$(normal_libs)endif有没有办法像三元类型运算符那样进行条件替换。(condition?$(CC):$(CC2))-ofoo$(objects)$(libs_for_gcc)如果没有什么是实现该示例的最惯用的方法我添加了c++标签,因为这个问题只有7个View,我认为使用c++的人可能知道答案,我知道这不是一个严格的c++问题(尽管我打算用它编译c