草庐IT

multiple-makefiles

全部标签

c++ - 如何在 Eclipse CDT 中切换调试和发布 Makefile?

例如我有2个Makefile:Makefile.Debug和Makefile.Release。我可以通过设置不同的命令在它们之间切换:C/C++Build->BuilderSettings->构建命令:make-fMakefile.Debug-j4或make-fMakefile.Release-j4,但是如何我可以在EclipseGUI中的两个makefile之间切换吗(就像在VisualStudio调试/发布配置中一样)? 最佳答案 在Eclipse中创建两个构建配置,每个配置使用不同的make命令。然后,您可以单击Eclipse

C++ 及其类型系统 : How to deal with data with multiple types?

“简介”我是C++的新手。我了解了所有基本内容,并设法为我的编程语言构建了2-3个简单的解释器。让我头疼的第一件事:用C++实现我的语言的类型系统想一想:Ruby、Python、PHP和Co.有很多内置类型,显然是用C实现的。所以我首先尝试的是在我的语言中使用三种可能的类型来给出一个值:Int、String和Nil。我想到了这个:enumValueType{Int,String,Nil};classValue{public:ValueTypetype;intintVal;stringstringVal;};是的,哇,我知道了。由于必须一直调用字符串分配器,因此传递此类非常慢。下次我尝试

c++ - 重新定义 malloc/free with static linking has multiple definition error

我公司最近想把编译器从gcc-3.4更新到gcc-4.5。但是,我们客户的机器可能没有最新的libstdc++.so,所以我们想静态链接我们的二进制文件。我们的程序需要定制的malloc()/free()以满足非常高的性能要求。我修改了makefile,在链接时添加了一个-static,得到了以下错误信息:/usr/lib64/libc.a(malloc.o)(.text+0x18c0):Infunction`free'::multipledefinitionof`free'../../ic/src/memmgr/libmemmgr_mt_thread.a(memmgr_mt_thre

c++ - 你如何为 clang 和 gcc 编写一个 makefile?

我想在我的代码中使用std::experimental::filesystem,这需要我使用-lstdc++fs与GCC和进行编译-lc++experimental使用Clang。目前我有一个makefile和makefile.clang反射(reflect)了编译的差异,或者我考虑过使用clang构建目标以便我可以运行buildclang.是否有一些规范的方法可以在makefile中设置特定于编译器的标志? 最佳答案 正如用户“Someprogrammerdude”提到的,有conditionals在GNU中。您可以通过这种方式轻

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++11 线程 : Multiple threads waiting on a condition variable

我目前正在研究一个模拟扩展生产者-worker模型的问题。在这个问题中,有3个worker和3个工具可用,要让worker工作,他们需要2个工具(和Material,但这些无关紧要)。如果金库中有>=2个工具,worker将拿取2个。否则,他们将等待一个条件变量,该变量将在>=2个时发出信号。这对2个worker来说没问题:一个工作然后将工具归还到金库,另一个等待的worker将被唤醒并拿走2个工具。问题是,有3个worker,总会有一个人饿着肚子去拿工具。经过一些测试后,我注意到等待条件变量的线程是以堆栈形式构建的。有没有可能让它排队?(1等,2等,3等。当1觉醒想再做一个的时候,就