# 如果需要写多线程程序,就需要引用-pthread #LIBS += -pthread # 这里是主要需要修改的地方,每一个.c或.cpp对应于这里的一项, #如main.cpp对应于main.o # 多个.o可以用空格分开,也可以像下面这样用"\"换行,然后写在新一行 OBJECT := main.o \ # 下面举个例子,这里编译表示两个代码文件 # OBJECT :=...
CC = $(CROSS_COMPILE)gcc STRIP = $(CROSS_COMPILE)strip INC = -I$(shell pwd)/src/ -I$(shell pwd)/src/net -I$(shell pwd)/src/xop -I$(shell pwd)/src/3rdpart LIB = LD_FLAGS = -lrt -pthread -lpthread -ldl -lm $(DEBUG) CXX_FLAGS = -std=c++11 O_FLAG = -O0 CFLAGS += ...
2.pthread库 undefined reference to ‘pthread_create’ undefined reference to ‘pthread_xxxx‘ 增加-lpthread链接选项 3.rt库 undefined reference to `clock_gettime’ 增加-lrt链接选项 如果是使用codeblocks,可以再link option里加,不过因为依赖顺序的问题,如果link option里加了还是报错,直接在link file里添加pth...
gip.c这个文件用到了pthread_create, 所以编译参数比time的参数要多链接一个lib,使用了-lpthread LIBS+=-lpthread gip:$(subst.c,.o,$(wildcard*.c))gcc $^$(LIBS)-o $@%.o:%.c gcc-c $<-o $@ clean:rm $(subst.c,.o,$(wildcard*.c))看一下编译的过程: make[1]:进入目录“/home/qq/...
例如,链接数学库(-lm)和pthread库(-lpthread): LDLIBS = -lm -lpthread 复制代码 CPPFLAGS:设置C和C++预处理器的选项。例如,定义宏和包含头文件的搜索路径: CPPFLAGS = -DDEBUG -I/path/to/headers 复制代码 以下是一个简单的Makefile示例,展示了如何设置这些编译选项: CC = gcc CXX = g++ CFLAGS = ...
程,如果你使用了pthread_create函数,那么你就应该在编译语句的最后加上”-lpthread ”,”-l”表示连接,”pthread”表示要连接的库,注意他们在这里要连在一起写 ,还有比如你使用了光标库curses,那么呢就应该在后面加上”-lcurses”,比如下 面的写法:
CC =gccCXX= g++CFLAGS= -O -DDBG -D_REENTRANT -Wall -DUSE_PTHREAD -pthread LDFLAGS= -ldl -lnsl -lm -lpthread #wildcard 对 c文件进行展开 SRCS= $(wildcard *.c) $(wildcard *.cpp) #去除路径信息dir=$(notdir $(SRCS)) # 把后缀.c 替换成 .o ...
LIBS:告诉链接器要链接哪些库文件,如LIBS = -lpthread,-lm(链接线程库和数学库) 有关具体参数可查看gcc编译选项 Makefile中的缩进 makefile中有两种不同的语言,shell语法(recipe)和makefile语法(non-recipe),为了区分这两种语言所以使用tab。以tab开头的是shell(recipe)。
【2】此处使用了共享库pthread,共享库的设备一般包含两个方面。第一,共享库的名称 DLIBS。共享库的查找路径LDFLAGS。因为pthread为系统共享库,使用了系统默认的查找路径 /usr/lib,所以LDFLAGS设置能够省略,若须要制定共享库文件夹,在文件夹前增加-L就可以。
本质上来说,make和cmake都是协助你进行编译的工具,用户完全可以通过g++gcc按照编译器要求来进行直接编译,只不过make和cmake根据各自认为合适的组织规则方便我们进行编译管理罢了。如增加一个线程库: g++ *.cpp -o -lpthread test 1. 这是g++编译器要求的样子。所有包含头文件、库文件、打包和链接库等操作都通过-...