Tag: makefile

如何编译GnuTLS

我试图在Centos 6.2上多次编译GnuTLS库,但没有运气。 这些是步骤: 我下载了Nettle 2.4 [root@localhost opt]# wget http://www.lysator.liu.se/~nisse/archive/nettle-2.4.tar.gz [root@localhost nettle-2.4]# tar zxvf nettle-2.4.tar.gz [root@localhost nettle-2.4]# cd nettle-2.4 [root@localhost nettle-2.4]# ./configure –enable-shared –prefix=/usr Version: nettle 2.4 Host type: x86_64-unknown-linux-gnu ABI: 64 Assembly files: x86_64 Install prefix: /usr Library directory: ${exec_prefix}/lib64 Compiler: gcc Shared libraries: yes Public key crypto: no 我运行命令make和make install 我下载了最新的GnuTLS ./configure –with-libnettle-prefix=/usr hecking […]

Makefile:Error1

我有一个非常简单的c程序: int main() { return(1); } 和一个简单的Makefile: all: gcc -ansi -pedantic -o tmp tmp.c ./tmp 但是,当我键入make我收到以下错误消息: $ make gcc -ansi -pedantic -o tmp tmp.c ./tmp make: *** [all] Error 1 我错过了什么明显的事情?

GNU在gcc调用后生成“Abort trap:6”但是单独执行时调用有效

我正在使用GNU Make来构建一个很多人都会使用的C / C ++项目。 makefile尝试通用,因为此项目中有许多可选文件,每个用户通过MATLAB接口选择这些文件,然后通过命令行参数提供给makefile(make target OPTS =’XYZ’等…)。 当我使用makefile时,它正确识别正确的对象依赖项,然后继续查找这些对象的源先决条件并构建它们。 但是,每次尝试执行对象规则时,我都会在gcc调用之后收到错误消息“Abort trap:6”。 Makefile如下 vpath %.c $(PATH) $(OBJ_DIR) # Pick compilers CC1=g++ CC2=gcc LNK=g++ # Assign variables for c/cpp implicit rules CXXFLAGS= $(CCFLAGS) $(DEFINES) $(INCLUDES) CFLAGS = $(CCFLAGS) $(DEFINES) $(INCLUDES) # Assign various user-defined values OUTPUT = -o $(USER_LIB) C_OBJECTS = $(patsubst %.c,$(OBJ_DIR)/%.o,$(C_SOURCES)) CPP_OBJECTS = $(patsubst […]

这个错误是什么意思:`somefile.c:200:错误:1032字节的帧大小大于1024字节`?

在制作期间,我发现了一个错误: cc1: warnings being treated as errors somefile.c:200: error: the frame size of 1032 bytes is larger than 1024 bytes 行号指向ac函数的右括号,其具有如下签名: void trace(SomeEnum1 p1, SomeEnum2 p2, char* format, …) { char strBuffer[1024]; … 该函数将一些内容打印到缓冲区中。 任何人都知道这种类型的错误通常意味着什么?

如何编写混合C和C ++的makefile

在这个Makefile中,我不知道如何在混合C和C ++的同一个Makefile中编译c对象。 如果我首先编译C对象然后运行这个Makefile,它就可以工作。 任何人都可以帮我解决这个问题吗? 提前致谢! CXX = g++ CXXFLAGS = -Wall -D__STDC_LIMIT_MACROS SERVER_SRC = \ main.cpp SERVER_SRC_OBJS = ${SERVER_SRC:.cpp=.o} REDIS_SRC = \ $(HIREDIS_FOLDER)/net.c \ $(HIREDIS_FOLDER)/hiredis.c \ $(HIREDIS_FOLDER)/sds.c \ $(HIREDIS_FOLDER)/async.c REDIS_SRC_OBJS = ${REDIS_SRC:.c=.o} .SUFFIXES: .SUFFIXES: .o .cpp .cpp.o: $(CXX) $(CXXFLAGS) -I$(HIREDIS_FOLDER) \ -c $< -o $*.o all: server net.o: net.c fmacros.h net.h hiredis.h async.o: async.c async.h […]

使用make进行跨平台编译

我目前正在Linux和Win32下开发一个C项目。 ‘deliverrable’是一个共享库,所有开发都是在Linux下使用GNU工具链完成的。 我正在使用Makefile来编译共享库。 我不得不在同一个src下在Win32下构建一个.dll。 我已经在Win32盒子上安装了MinGW,这样我就可以使用make并从编译器中获得更少的投诉(与MSVC相比)。 我正处于src代码在两个平台上编译的阶段 但是Linux Makefile和Win32 Makefile是不同的。 我很好奇如何最好地处理这个 – 我应该: 有2个makefile,例如Makefile for linux和Makefile.WIN32然后在Windows框上运行make -f Makefile.WIN32 我应该在单个Makefile中创建一个不同的目标,并在Windows框中执行类似make WIN32的操作 我应该放弃制作并使用CMake(对于这样一个简单的项目来说,果汁值得挤压,即1个共享库)

文件无法识别:无法识别文件格式

当我运行make文件时,我收到此错误 “obj / viojournal.o:文件无法识别:文件格式无法识别collect2:ld返回1退出状态” 和make文件如下 如何解决这个问题。 我在centos 5.4 linx 64bit机器上使用gcc编译器。 all: libvioft.so fdump syncer CPPFLAGS = -I/usr/include/libxml2 -I../clogger -I../marshall -I../ddp \ -I../http -I../xml -I../nfsop -I../include/common -I../restful \ -I../include/oneGrid CFLAGS = -g3 -Wall -Wextra -fPIC -DREPLICATION_ENABLED -DJOURNALING_ENABLED #CFLAGS = -g3 -Wall -Wextra -fPIC LDFLAGS = -Wl,-rpath=\$$ORIGIN -Wl,-rpath=\$$ORIGIN/../clogger \ -Wl,-rpath=\$$ORIGIN/../marshall -Wl,-rpath=\$$ORIGIN/../ddp \ -Wl,-rpath=\$$ORIGIN/../http -Wl,-rpath=\$$ORIGIN/../xml \ -Wl,-rpath=\$$ORIGIN/../restful LIBS […]

库的Makefile

每次我想使用库执行程序时,我必须在终端上运行这4个命令。 线条是 cc -m32 -c mylib.c ar -rcs libmylib.a mylib.o cc -m32 -c prog.c cc -m32 prog.o -L. -lmylib ./a.out 如何为上述命令创建一个makefile并运行它? 一个详细的程序将不胜感激。 谢谢。 编辑:这是解决方案: a.out: prog.o libmylib.a cc prog.o -L. -lmylib prog.o: prog.c mylib.h libprint_int.a: mylib.o ar -rcs libmylib.a mylib.o print_int.o: mylib.c mylib.h clean: rm a.out prog.o libmylib.a mylib.o 这在第2行给出了错误,因为我使用空格而不是制表符。

从Makefile中的C ++ FLAGS中删除一个标志?

我有一个包含另一个makefile的Makefile,它设置了很多默认值。 我无法编辑包含的makefile,我想在makefile中更改C ++ FLAGS的值,即使它是在包含的makefile中设置的。 具体来说,每当debug = 1时,我想从C ++ FLAGS中删除优化标志。 我尝试了以下方法: C++FLAGS=$(filter-out -O3,$(C++FLAGS)) 哪个失败,出现以下错误: Recursive variable `C++FLAGS’ references itself (eventually). Stop. 似乎做这样的事情应该是可能的,任何人都知道秘密吗?

fcgio.cpp:50:错误:在此范围内未声明’EOF’

我试图在Linux Ubuntu 10.x机器上构建fastcgi。 我运行以下命令: ./configure make 我收到以下错误: fcgio.cpp: In destructor ‘virtual fcgi_streambuf::~fcgi_streambuf()’: fcgio.cpp:50: error: ‘EOF’ was not declared in this scope fcgio.cpp: In member function ‘virtual int fcgi_streambuf::overflow(int)’: fcgio.cpp:70: error: ‘EOF’ was not declared in this scope fcgio.cpp:75: error: ‘EOF’ was not declared in this scope fcgio.cpp: In member function ‘virtual int fcgi_streambuf::sync()’: fcgio.cpp:86: error: […]