|
我在arm上编了一个多线程程序,在动态连接的时候编译运行均成功,但静态编译的时候连接失败,编译选项如下:
/usr/local/arm/2.95.3/bin/arm-linux-gcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -static -I /usr/local/arm/2.95.3/arm-linux/include -L /usr/local/arm/2.95.3/arm-linux/lib -lpthread -lc -o testthread testthread.c
错误信息如下:
[root@localhost testthread]# make
/usr/local/arm/2.95.3/bin/arm-linux-gcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -static -I /usr/local/arm/2.95.3/arm-linux/include -L /usr/local/arm/2.95.3/arm-linux/lib -lpthread -lc -o testthread1 testthread1.c
/tmp/ccVNTGTB.o: In function `main':
/tmp/ccVNTGTB.o(.text+0x44): undefined reference to `pthread_create'
/tmp/ccVNTGTB.o(.text+0x58): undefined reference to `pthread_join'
collect2: ld returned 1 exit status
make: *** [testthread1] Error 1
请各位不吝赐教
--
ps:由于开发的系统上面的linux上没有多线程的动态库,所以想在交叉编译时编译成静态的。
动态的编译没有问题,就是加了-static后,线程的建立等就undefine了。
想问问大家能静态连接吗?
或者在嵌入式系统的linux上加多线程的连接库,怎么加? |
|