询问个uclinux下用多线程时候出现的问题
我的makefile是这么写的:
EXEC = hello
OBJS = hello.o
LDLIBS += -lpthread
all: $(EXEC)
$(EXEC): $(OBJS)
$(CC) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS)
romfs:
$(ROMFSINST) /bin/$(EXEC)
clean:
-rm -f $(EXEC) *.elf *.gdb *.o
而且程序里也#include <pthread.h> 了
但是编译内核时候总是出现这样的错误,出现在我make user_only这一步
错误提示在include/pthread.h文件和arm-elf/sys-include/schded.h里parse error before '__THROW '
还有很多的警告:
在pthread.h里总是紧跟上面那个错误后出现警告:data definition has no type or shorage class。
而且警告和错误提示的地方都在同一行。
希望大虾们给个提示啊
------解决方案--------------------会不会是工具链的 多线程支持问题? 有三种多线支持, 这是buildroot的uclibc工具链配置菜单中提供的选项.
( ) None
( ) linuxthreads
(X) linuxthreads (stable/old)
( ) Native POSIX Threading (NPTL)
------解决方案--------------------你有没有编译libpthread.a, 如果没有可以make menuconfig需要支持thread