在Beta、PaulR和Sjoerd(谢谢大家!)的帮助下,我一直在大量重构我的makefile。以下是我的STARTING产品:#Nice,wonderfulmakefilewrittenbyJasonCC=g++CFLAGS=-c-WallBASE_DIR:=.SOURCE_DIR:=$(BASE_DIR)/sourceBUILD_DIR:=$(BASE_DIR)/buildTEST_DIR:=$(BASE_DIR)/build/testsMAKEFILE_DIR:=$(BASE_DIR)/makefilesDATA_DIR:=$(BASE_DIR)/dataDATA_DIR_TE
好吧,经过3小时的研究,我快要发疯了,所以我想是时候把它传递给一些新人了。CXXFLAGS=-g-WallOBJS=main.oPROG=testINCLUDES=-I/usr/include/mysql-I/usr/local/includeLIBS=-L/usr/lib/mysql-llibmysqlclient.so.15.0.0-L/usr/local/lib-llibmysqlpp.so.3.1.0all:$(PROG)${PROG}:$(OBJS)$(CXX)$(INCLUDES)-o$(PROG)$(OBJS)$(LIBS)clean:;$(RM)-f$(PROG)cor
如何在Makefile中为不同的源文件使用不同的编译器标志?例如,我想要一个生成的Makefile:g++-c-COMPILER_FLAGS_1-gsource1.cpp-osource1.og++-c-COMPILER_FLAGS_2-gsource2.cpp-osource2.og++-c-COMPILER_FLAGS_2-gsource3.cpp-osource3.og++-c-COMPILER_FLAGS_2-gsource4.cpp-osource4.og++-c-COMPILER_FLAGS_3-gsource5.cpp-osource5.og++-c-COMPILER_F
我正在OSX10.6上以32位模式构建第3方库(该库是Xerces2.8)。我已确定预处理器定义__LP64__已设置。但是,据我所知,它没有在第3方项目的任何配置文件中设置,并且通过所有文件(通过Finder)进行全局搜索#define__LP64__没有告诉我这是系统在哪里定义的。我在命令行通过make构建库(不涉及Xcode)。鉴于我正在以32位模式构建项目,我想知道__LP64__的定义位置及其用途。 最佳答案 它由编译器自动定义,而不是在任何header中定义。如果已设置,则您正在为64位目标构建。(如果编译器尚未定义它,
我正在关注this尝试使用一些SDL扩展库的SDL教程。我的代码与theirs相同但我仍然无法制作文件,这让我相信问题出在我的makefile中,它看起来像这样:CXX=g++#Updatethesepathstomatchyourinstallation#Youmayalsoneedtoupdatethelinkeroptionrpath,whichsetswheretolookfor#theSDL2librariesatruntimetomatchyourinstallSDL_LIB=-L/usr/local/lib-lSDL2-Wl,-rpath=/usr/local/lib,-
当我在Ubuntu终端中输入make时,我得到:main.cc:5:30:fatalerror:folder/file.h:Nosuchfileordirectory文件夹在工作目录下,文件.h在指定文件夹下。当我输入ls时,它还会列出我工作目录中的文件夹和文件。奇怪的是,当我在geany中打开它并要求它在#include它发现它没有问题,但是当它构建它时我得到了错误。是否需要设置一个标志以便它包含文件夹?如果是这样,那会是什么样子? 最佳答案 这在一定程度上取决于您的C编译器,但“通常”在您使用包含文件时语法编译器只会在您在命令行
我有一个非常简单的makefile来构建一个静态库,多年来它在GNUmake版本3.81上运行良好,但在版本3.82上运行失败。我已经阅读了有关向后兼容性的问题,但这些问题似乎并不适用。我还检查了这里的几个帖子,例如MakefileSyntax:Staticlibrarylib$(library).a($objects)和Makefile-tocreateastaticlibrary,但找不到解决方案。这是我的生成文件:FILES=file1.ccfile2.ccfile3.ccOBJ_FILES=$(FILES:.cc=.o)libname.a:libname.a($(OBJ_FIL
是否有一个示例可以在简单的makefile中使用ZED库而不是使用CMAKE?我是一栋建筑物,我正在尝试包括ZED库,但我会发现“找不到”错误:EXTERNAL_CFLAGS+=$(shellpkg-config--cflagszed)EXTERNAL_LIBS+=$(shellpkg-config--libszed)看答案通过在PKConfig文件夹中添加.pc文件解决
我正在尝试将SDL2设置为与g++、文本编辑器和终端一起使用。我在/Library/Frameworks中有我的SDL2.framework。我的桌面上有一个名为testsdl的文件夹,其中包含两个文件:1)main.cpp2)生成文件当我键入make时,出现以下错误:main.cpp:2:10:fatalerror:'SDL2/SDL.h'filenotfound。这是我的makefile的拷贝CXX=g++SDL=-frameworkSDL2CXXFLAGS=-Wall-c-std=c++11-I~/Library/Frameworks/SDL2.framework/Headers
我在下面的Makefile中遇到了一个奇怪的问题:#MosekpathMOSEKPATH=/autofs/fs1.ece/fs1.eecg.najm/b/b1/power_grid_code/mosek#IncludepathsINCPATHS=-I$(MOSEKPATH)/7/tools/platform/linux64x86/h-I/usr/include/suitesparse-I../include#LibrariespathsLIBPATHS=-L$(MOSEKPATH)/7/tools/platform/linux64x86/bin#LinklibrariesLIBS=-l