我尝试使用文件main.cpp、factorial.cpp、hello.cpp和function.h制作Makefile在Linux命令窗口中键入“make”时,它显示:g++-c-ohellomain.ofactorial.ohello.og++:main.o:linkerinputfileunusedbecauselinkingnotdoneg++:factorial.o:linkerinputfileunusedbecauselinkingnotdoneg++:hello.o:linkerinputfileunusedbecauselinkingnotdone我是第一次制作Mak
基于一些SO问题——以及发现的一些进一步引用——,我正在尝试构建一个makefile能够:根据$(SRC)中的目录,找到要编译的.cpp文件;编译.cpp,生成.o对象;从以前编译的每个.o生成.so共享对象。make文件应该做的是:根据$(SRC)中的目录,找到要编译的.cpp文件;使用-MM编译器标志为每个.cpp构建依赖列表;使用$(eval...)注释/添加每个依赖项;评估/解决找到的每个依赖项,生成.o和.so文件。到目前为止我有什么:我已经能够完成所有事情,除了让它工作(:我得到的错误指出,不知何故,有一个空标签''作为依赖项:$makemake:*Noruletomake
我有一个非递归的makefile,它定义了可用于构建库等的辅助函数definemake-library#buildlibfrom*.cppincurrentdir...endef每个库/二进制文件都在一个名为module.mk的单独makefile段中定义,该段调用这些辅助函数$(eval$(callmake-library,my_lib))makefile在源代码树中搜索makefile段,并包含它们modules:=$(shellfind.-namemodule.mk|xargsecho)include$(modules)问题:我在makefile的顶部定义了一组默认的CPPFLA
我的任务是将古老的基于C++的代码从Unix环境迁移到Linux。该项目由多个Makefile组成,用于库的不同“模块”。我已经解决了一些问题,但是现在在使用include指令时遇到了问题。显然,Makefile的构造方式是为不同的文件使用单独包含指令,并且它在Unix服务器中运行了多年。例如:include../../../../util/genmake.defprocessControl.slOBJS=processControl.ooutputControlOBJS=outputControl.oinputControlOBJS=inputControl.ocleanList=*
我正在尝试创建一个适用于OSX和Linux的makefile。我的问题是我需要更改cflags和ldflags根据操作系统的不同,makefile已执行,但我无法使其工作。那是我的生成文件:OS:=$(shelluname)DST=helloSRC=$(wildcard*.cpp)OBJ=$(SRC:.cpp=.o)CFLAGS=all:cleanDetectOS$(DST)DetectOS:ifeq($(OS),Darwin)@echoOS:$(OS)CC=g++LDFLAGS="-lm-frameworkOpenCL"CFLAGS+=-O3endififeq($(OS),Linux
我在谷歌上搜索了很多,看到一些旧帖子说它在VS2008之前是可能的?但是现在我再也找不到“exportmakefile”选项了..现在有另一种方法可以做到这一点吗? 最佳答案 我也用谷歌搜索了同样的结果:似乎真的没有办法从给定的VS2015解决方案创建Makefile。我得到的最接近的是MakeItSo.它支持VS2010,但它是开源的,因此您可以根据自己的需要对其进行调整。我的建议是使用CMake.是的,您将不得不投入一些努力来习惯它并转换项目定义。但是管理CMake定义比单击解决方案和项目属性对话框要容易得多。然后你得到你的Ma
我试图编写一个共享库并尝试链接它以形成最终的可执行文件。生成文件mystring.out:main.clibmystring.sogcc-I.-L/home/pradheep/myexploration/mystring/-lmystringmain.c-omystring.outlibmystring.so:mystring.ogcc-shared-Wl,-soname,libmystring.so-olibmystring.somystring.olibmystring.a:mystring.oar-rlibmystring.amystring.omystring.o:mystri
objects=hello.oname.oprinting.oexename=himake$(exename):$(objects)$(CC)-o$(exename)$(objects)%.o:%.cpp$(CC)-c$^我正在尝试使用通用后缀,因此我不需要先将3个文件编译成.o。这应该使用%通配符完成所有这三个操作。当我做很长的路时它工作正常但不是这个。运行上面的makefile会出现以下错误:[alex@pccDir]$makecc-ohimakehello.oname.oprinting.ohello.o:Infunction`__static_initialization_an
我正在为iPhone开发一个开源项目,并已将该项目转换为使用ARC和AppleLLVM3.0编译器。然而,该项目依赖于使用makefile构建的外部库,因为它是用C编写的。目前,它使用GCC进行编译,并且在make期间它引用了ARC-ifiedObjective-C代码,这会导致一些符号错误(例如作为@autorelease)在LLVM之前的编译器上不存在。但足够了。我的问题是如何转换这段代码:VERSION=4.3COPT=-F/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS${VERSION}.sdk/Sy
我的CFLAGS有-I../../usr/local/sys/usr/include正确加载zlib.hLDFLAGS是LDFLAGS=-L../../usr/local/sys/usr/lib-lxml2-lzlib但是当链接器尝试链接以下时1>+Linkingprojectfiles...1>ld:librarynotfoundfor-lzlib1>collect2:ldreturned1exitstatus1>make:***[link]Error1可能是什么问题?windows7下的环境是iosdevenv(所以目录结构和macos下不一样) 最佳答