经常安装linux下面程序包的时候会下载一个tar.gz的文件,解压缩,然后make还有makeinstall什么的。想知道这对应windows/dos下面C++开发的什么步骤?刚刚下载的源码包,make能成功,删掉解压的文件夹,重新解压,然后运行makeinstall则报错,是什么原因?$makeinstallpythonuwsgiconfig.py--buildinstallusingprofile:buildconf/install.iniTraceback(mostrecentcalllast):File"uwsgiconfig.py",line1550,inuc=uConf(bconf,is_cflags)File"uwsgiconfig.py",line611,in__init__self.config.readfp(open_profile(filename))File"uwsgiconfig.py",line589,inopen_profilereturnopen(filename)IOError:[Errno2]Nosuchfileordirectory:'buildconf/install.ini'make:***[install]Error1我看了'buildconf/install.ini'这个文件确实不存在,buildconf路径下面是一堆其他的ini文件。
2 回答
撒科打诨
TA贡献1934条经验 获得超2个赞
你有没有./configure很多源码要autoconf步骤才能执行make,看样子,buildconf/install.ini很有可能是configure生成的。make执行Makefile文件,Makefile和VisualStudiosln文件都是规则文件,告诉编译器如何生成可执行文件,有哪些依赖有哪些步骤。比如以下的Makefile:DESMakefileCC=clangCXX=clang++CFLAGS=-WallCXXFLAGS=-std=c++11LDFLAGS=-lmall:des.cppInmessionante.o$(CXX)$(CXXFLAGS)des.cppInmessionante.o-odes-lstdc++Inmessionante.cpp:$(CXX)$(CXXFLAGS)-cInmessionante.cppclean:-rm-rf*.odes首先make会执行第一个标签(或目标),也就是all.检查依赖,推导,比如Inmessionante.o并不存在,就检查有没有Inmessionante.o的生成步骤。有就执行这个步骤。否则就会失败。在Windows下也有make,比如Mingw移植过去的,还有Cygwin的make,语法和linux下面的一致,换行符不一样。还有VisualStudio自带的nmake,nmake语法有少许差异。make执行的主要是编译源文件,而makeinstall正是执行install标签(或目标),如果没有标签(或目标)的话,是不能安装的。install:todoinstall.Linux下主要是将二进制复制到prefix/bin,已经头文件到prefix/include等等。你的Makefile中,自己写好了install标签(或目标)是可以使用makeinstall,也可以打包makepackage.就跨平台而言,可以学习CMAKE,cmake的打包要好的多。在Windows下编码,如果有IDE,还是IDE简便些。sln文件IDE支持也更好。
添加回答
举报
0/150
提交
取消