草庐IT

Makefile

全部标签

c++ - SCons 将编译后的程序复制到父目录

我试图在编译后自动将生成的程序文件复制到父目录。我试过了,但是不行。env.Program("program_name",["file1.cc","file2.cc"])Copy("../program_name","program_name")我如何使用SCons做到这一点? 最佳答案 更好的方法是使用目标和Command()构建器,如下所示:prgTarget=env.Program("program_name",["file1.cc","file2.cc"])Command(target="../program_name",s

c++ - 如何检测 make 依赖列表中的 header 更改

经过近十年的C#和VC++编码,我回到了linux–g++–make–emacs环境。试图刷新我关于编写make文件的内存我没有遇到太多问题,但我偶然发现了以下问题,我承认我不记得我过去是如何解决它的:假设一个特定的.cpp文件对其他几个头文件有一些依赖性(撇开它易于处理的相应头文件)......检测某些.h已更改的最佳方法是什么?我当然不喜欢将它们放在我的目标依赖列表中的想法,因为这是一个手动且容易出错的过程!简单的答案当然是只要有.h更改就构建干净,但我真的不记得标准方法是什么......。在VC++中,我不必处理这个问题,因为IDE非常擅长处理依赖关系......

c++ - C++ 单元测试的 Makefile

我正在努力编写正确构建我的单元测试的Makefile。例如,假设文件结构如下所示src/foo.cppsrc/foo.hppsrc/main.cpptests/test_foo.cpptests/test_all.cpp因此,要构建可执行文件test_all,我需要构建test_foo.o,它又依赖于test_foo.cpp,但也依赖于src/foo.o。在这种情况下,最佳做法是什么?父文件夹中有一个Makefile?每个文件夹一个Makefile?如果是这样,我如何管理文件夹之间的依赖关系? 最佳答案 通常的做法是每个目录一个Ma

c++ - 这些 g++ "multiple definition"错误是怎么回事?

我正处于一个项目的早期阶段(阅读:昨天才开始),我正在设置我的初始makefile。这非常简单。以下是文件的完整内容:all:main.oresource.og++-ooutput.exemain.oresource.omain.o:main.cppmain.hresource.hg++-mwindows-omain.omain.cppresource.o:resource.rcwindresresource.rcresource.oclean:rm*.o在这一点上,我认为重要的是要提到我正在Windows上工作,所以我在Powershell中使用MinGWg++4.5.2或使用Cyg

c++ - Netbeans远程C++开发 "No rule to make target"错误

在Netbeans中创建一个简单的远程C++开发应用程序时,出现以下错误:gmake[2]:Enteringdirectory'/path/to/project'gmake[2]:***Noruletomaketarget'/path/to/project/cpp/file'gmake[2]:Leavingdirectory'/path/to/project'BUILDFAILED(exitvalue2,totaltime:1s)要重现此错误,我只需创建一个新的C/C++项目,选择一个我已经配置的远程主机。当我添加具有相应.h文件的.ccp文件时,出现此错误。我什至不必使用或包含这些文

c++ - DistCC 和 CMake - 在运行 make 时在本地和分布式构建之间进行选择

我的项目是使用CMake构建的,并使用DistCC+GCC编译。我按如下方式配置编译器:SET(CMAKE_C_COMPILER"distccvariation-of-gcc")要构建项目,我只需运行“cmake”,然后运行“ma​​ke-jXX”。虽然distcc确实加快了速度,但有时我想在没有分发的情况下构建-我希望它在机器上本地构建。我知道我可以修改DISTCC_HOSTS以仅包含本地主机-但这仍然有distcc网络的开销,尽管它比其他机器的开销更快...我也可以通过再次运行cmake并使用自定义标志修改CMAKE_C_COMPILER来实现。但我正在寻找一种方法,只需将标志直接

c++ - 为什么命令 "cmake ."不生成 makefile?

关闭。这个问题需要debuggingdetails.它目前不接受答案。编辑问题以包含desiredbehavior,aspecificproblemorerror,andtheshortestcodenecessarytoreproducetheproblem.这将有助于其他人回答问题。关闭6年前。Improvethisquestion我在终端中运行cmake.,它说它生成了一些东西,然后我运行make,它说make:***Notargetsspecifiedandnomakefilefound.Stop.我猜我错过了其他我需要做的事情,但我不知道是什么。它应该已经创建了一个make文

c++ - "No rule to make target ' 安装 '"... 但是 Makefile 存在

我在安装C++库时遇到问题。CMake命令成功并生成Makefile,但它给出警告:CMakeWarning(dev)atCMakeLists.txt:27(LINK_DIRECTORIES):Thiscommandspecifiestherelativepath../usr/local/libasalinkdirectory.PolicyCMP0015isnotset:link_directories()treatspathsrelativetothesourcedir.Run"cmake--help-policyCMP0015"forpolicydetails.Usethecmak

c++ - 如何在只有 "makefile"而没有解决方案文件的 Visual Studio C++ 中编译开源框架?

如何在VisualStudioC++中编译只有“makefile”而没有解决方案文件的开源框架? 最佳答案 不幸的是,这种改变没有Elixir。Make和VisualStudioC++风格的构建是截然不同的野兽。虽然它们可以执行非常相似的操作,但它们的结构也可能截然不同,这使得提供简单的指南变得非常困难。恕我直言,实现此目标的最佳方法是启动一个新的C++项目。添加所有现有文件并逐步完成生成文件,尝试将每个操作转换为等效的C++操作。 关于c++-如何在只有"makefile"而没有解决方

C++ 预处理器变量

我在一个header中的C++代码中使用了SKELETON_JAR变量。但是,我想让用户在编译时轻松定义jar的位置。我认为最简单的方法是将此定义放在makefile中,是这样吗?#defineSKELETON_JAR"./Util.jar" 最佳答案 在您的代码中:#ifndefSKELETON_JAR#defineSKELETON_JAR"./Util.jar"//defaultpath#endif然后在makefile中使用CPPFLAGS:=-DSKELETON_JAR="./Util.jar"。当然,您必须确保CPPFLA