草庐IT

multiple-makefiles

全部标签

c++ - "multiple overloads"使用具有重复类型的模板类

我正在尝试编写一个采用两种模板类型的类。这个类继承自一个接口(interface)。请参见下面的代码。#include#includetemplateclassIObserver{public:virtualvoidNext(constT&value)noexcept=0;};templateclassBinaryObserver:publicIObserver,publicIObserver{public:voidNext(constT1&value)noexceptoverride{};voidNext(constT2&value)noexceptoverride{};};intm

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++ - 编译时错误 : Multiple definition of 'main'

我收到以下错误:`main'的多重定义我新建了一个项目,里面有两个c++文件:文件1#includeusingnamespacestd;intmain(){cout文件2#includeusingnamespacestd;intmain(){cout当我按下构建项目并运行时,出现错误。如何运行这些文件? 最佳答案 您不能在同一个项目中有两个主要功能。将它们放在单独的项目中或重命名其中一个函数并从另一个主要函数调用它。无论参数列表如何,您的项目中永远不能有多个main()函数,因为它是入口点。但是,只要参数列表不同(functiono

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

c++ - 可变参数模板 : Interlacing multiple packs

给定任意数量的包,从每包中取出第一种,将它们放在一起。然后从每个包中取出第二种,将它们放在一起,等等......然后将它们全部合并。任何剩下的人都会在他们之间重复这个过程。例如,为了更好的可读性,使用整数来表示不同的类型,InterlacePacks,Pack,Pack>::type会给予Pack仅当所有包的尺寸都相同时,以下代码才有效。当包装尺寸不同时,我现在完全无法处理“剩菜”。到目前为止,这是我的代码。我会解释每个阶段,以便您了解我的计划:#include//FirstahelpertoremovethefirstNtypesfromapack:templatestructRem

c++ - 简单的 C++ : How to overload the multiplication operator so that float*myClass and myClass*float works

classMyClass;intmain(){floata=5;MyClassc1;MyClassc2=a*c1;MyClassc3=c1*a;}如何重载乘法运算符以便a*c1和c1*a都能工作? 最佳答案 像这样:MyClassoperator*(floatx,constMyClass&y){//...}MyClassoperator*(constMyClass&y,floatx){//...}第二个也可以是成员函数:classMyClass{//...MyClassoperator*(floatx);};前2个选项作为类范围之外

c++ - 如何将 cdt 成功转换为 makefile?

最近我开始做一个C++项目,并使用eclipse的内部构建工具开始它,这似乎是最简单的方法。但是,由于该项目需要构建在多个架构上,我认为最好采用其他方法在其他架构上构建此项目,而无需该PC也安装eclipse。有没有办法从托管项目中提取生成文件?或者我应该弄清楚如何在eclipse之外进行操作?(使用autogen或类似的?)编辑澄清一下:我目前在Eclipse中使用,在查看项目属性时,internalbuilder作为构建器类型。这使用make,并打开一个复选框,指示它将自动生成makefile。虽然我仍然找不到生成文件... 最佳答案