使用Linux多线程的报错,加上#define HAVE_STRUCT_TIMESPEC这句话后,就报了这个错误,有人可以解答一下吗,谢谢!
这是在windows下用visual studio编译的代码吧,windows下不识别pthread_create这些函数的。
pthread_create 和 pthread_exit这是linux C的函数,windows下不识别的。
linux代码需要写makefile编译,或者用gcc 编译
下面是一个makefile文件的模板(linux系统下,在你的工程目录下,新建一个makefile文件,把下面的代码贴进去,修改几个地方后,保存,然后在终端中输入makefile回车,即可对代码进行编译)
#编译器LINUX
CXX=g++
#编译动态库
CXXDL= -g -lpthread $(LIB)
COMPILE=-c -g
#编译目标文件
CXXFLAGS=-g $(INCLUDE) -fPIC
#头文件搜索路径 ---这里可能需要添加你的头文件目录
INCLUDE=-I./ -I/data/include
#动态库 --这里添加依赖的动态库
LIB=-L/data/lib -lnettrans
#目标文件,所有的cpp文件都写在这里
OBJ_FILES=send.o
#生成可执行文件,改成你想要的程序名
TARGET=./send
$(TARGET):$(OBJ_FILES)
@echo "Link the $@ starting..."
$(CXX) -o $(TARGET) $(OBJ_FILES) $(CXXDL)
@echo "Link the $@ done."
$OBJ_FILES:%.o:%.cpp
$(CXX) $< -o $@ $(COMPILE) -I$./
clean:
rm $(OBJ_FILES) $(TARGET)