我想知道您通常如何处理这种情况:我有一组实用函数。说..5..10个文件。从技术上讲,它们是静态库、跨平台-SConscript/SConstruct加上VisualStudio项目(不是解决方案)。这些实用函数用于多个小项目(15个以上,数量随着时间的推移而增加)。每个项目都有几个文件或整个库的拷贝,而不是指向一个中心位置的链接。有时项目使用一个文件,两个文件,有些使用一切。通常,实用函数作为每个文件和SConscript/SConstruct或VisualStudio项目(视情况而定)的拷贝包含在内。每个项目都有一个单独的git存储库。有时一个项目源自其他项目,有时则不然。您以随机
假设我在VisualStudio2008中有一个C++项目,它的编译取决于许多配置设置。例如,我有可选的预处理器定义WITH_MYLIB和EXPERIMENTAL来修改代码。拥有MyLib的用户将希望使用在预处理器定义列表中具有WITH_MYLIB的项目配置进行编译,并将该库添加到包含/链接设置中。想要启用实验性功能的用户将希望将EXPERIMENTAL添加到预处理器定义中。但除了这些更改之外,其余的项目配置应该大部分相同。我试图避免创建“指数”数量的项目配置来处理所有可能性,即我不想拥有调试Debug_WithMyLibDebug_WithMyLib_Experimental调试实验
emacs中编译-运行周期的首选做法是什么?以前,我使用M-x编译(映射到F12)和make作为我的编译命令。在Makefile中,我有一个条目可以运行已编译的程序。当我的程序是非交互式的,但编译缓冲区是非交互式的时,这工作得很好。当然我可以打开一个shell并运行可执行文件,但我想尽可能地自动化编译-运行周期,我认为必须有一个标准的做法,我猜我正在执行-from-the-makefile方法很麻烦...C-uF12有效,但我想知道这是否是执行此操作的最佳方法(如果是,我如何绑定(bind)F12等同于C-uM-xcompile而不是M-xcompile?).
我一直在处理链接到.so(动态库)文件的C++项目。假设我有一个目标PROG需要链接到a.so,而a.so也是我构建的,在下面的Makefile中指定。PROG_SRCS=prog.cppPROG_OBJS=$(PROG_SRCS:%.cpp:%.o)all:PROGPROG:$(PROG_OBJS)liba.so$(LINK.cpp)-o$@$(PROG_OBJS)-laLIBA_SRCS=liba/a.cppLIBA_OBJS=$(LIBA_SRCS:%.cpp:%.o)liba.so:$(LIBA_OBJS)$(LINK.cpp)-shared-Wl.-soname,$@-o$@
这个问题在这里已经有了答案:Howtoplaceobjectfilesinseparatesubdirectory(9个回答)关闭9年前。我有这个目录结构:./src包含我需要的所有文件的.cpp和.h./bin应该包含暂时的.o和永久的.bin。此外,调用makeclean时应删除此文件夹。./包含Makefile这是我当前的Makefile:CFLAGS=-Wall-pedantic-gCC=g++EXEC=flrfileSRC_DIR=srcBIN_DIR=binOBJ=FixedLengthFieldsRecord.oFixedLengthRecordFile.omain.oa
这个问题在这里已经有了答案:CMAKE_MAKE_PROGRAMnotfound(16个答案)关闭4年前。全新的编码。我已经安装了CLion,并计划开始使用C++进行编码。我还安装了Cygwin。我已经研究了大约一个小时的编译器如何工作以及如何使用它,但是当我在Clion上选择编译器时,我得到了错误“CMake错误:CMake无法找到对应于“UnixMakefiles”的构建程序。未设置CMAKE_MAKE_PROGRAM。您可能需要选择其他构建工具。”“CMake错误:CMAKE_C_COMPILER未设置,在EnableLanguage之后”和“CMake错误:未设置CMAKE_C
我有一些C++代码的makefile(粘贴在下面),它有一个恼人的问题,当我执行makeclean时,依赖文件被编译(在再次被删除之前),这使得清理太慢了。依赖规则是$(DEPENDDIR)%.d:%.cpp@mkdir-p$(DEPENDDIR)$(CXX)-M-MG-MT$(OBJECTDIR)$*.o$(CXXFLAGS)$$@谁能看出是什么问题?我尝试将依赖项移动到编译对象的部分,即:$(OBJECTDIR)%.o:%.cpp@mkdir-p$(OBJECTDIR)#$(dir$@)@echo""$(CXX)-M-MG-MT$@$(CXXFLAGS)$但是没有创建头文件vers
在通过源代码安装cURL后,我需要在Ubuntu11.04中链接cURL。.问题的更正首先我发现-l必须在-L之前,然后发现我没有在makefile中输入变量。.获取cURL配置:在我的终端上:#curl-config--libs-L/usr/local/lib-lcurl#curl-config--cflags-I/usr/local/include没关系,这个目录下有文件cURL。我的生成文件:#TestingcURL#MAKEFILE#C++Compiler(Default:g++)CXX=g++CFLAGS=-Wall-Werror#LibrarysINCLUDE=-Iusr/
我正在尝试在QTCreatorforWindows中测试我完成的库(微积分)。我已经创建了一个主文件,并在单独的文件中创建了一个类用于测试。如果我编译在http://www.boost.org/doc/libs/1_47_0/libs/test/doc/html/utf/user-guide/test-organization/manual-test-suite.html中找到的示例它有效,所以在http://www.boost.org/doc/libs/1_47_0/libs/test/doc/html/utf/user-guide/test-organization/manual-
在C++文件的Makefile中有一个隐式规则,它使用.C或.cc扩展名。但我通常使用C++源文件的.cpp文件扩展名。如何将Makefile的隐式规则用于.cpp文件? 最佳答案 参见CatalogueofImplicitRules:CompilingC++programsn.oismadeautomaticallyfromn.cc,n.cpp,orn.Cwitharecipeoftheform‘$(CXX)$(CPPFLAGS)$(CXXFLAGS)-c’.Weencourageyoutousethesuffix‘.cc’for