Open uniartisan opened 3 years ago
You seem to not have any pthread library installed. For a minimal fix you could try to install sudo apt-get install libpthread-stubs0-dev
, otherwise I would recommend installing sudo apt install build-essential
which also installs GCC, but should provide all other development requirements.
You seem to not have any pthread library installed. For a minimal fix you could try to install
sudo apt-get install libpthread-stubs0-dev
, otherwise I would recommend installingsudo apt install build-essential
which also installs GCC, but should provide all other development requirements.
pi@raspberrypi:~ $ sudo apt-get install libpthread-stubs0-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
libpthread-stubs0-dev 已经是最新版 (0.4-1)。
libpthread-stubs0-dev 已设置为手动安装。
下列软件包是自动安装的并且现在不需要了:
llvm-7-runtime llvm-runtime lxplug-volume python-colorzero rpi-eeprom-images
使用'sudo apt autoremove'来卸载它(它们)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
pi@raspberrypi:~ $ sudo apt install build-essential
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
build-essential 已经是最新版 (12.6)。
下列软件包是自动安装的并且现在不需要了:
llvm-7-runtime llvm-runtime lxplug-volume python-colorzero rpi-eeprom-images
使用'sudo apt autoremove'来卸载它(它们)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
It seems that all the library are installed. However, the issue still occurs. here is the latest output, which may help:
cat CMakeError.log
Performing C SOURCE FILE Test CMAKE_HAVE_LIBC_PTHREAD failed with the following output:
Change Dir: /home/pi/workspace/pi/VC4C/CMakeFiles/CMakeTmp
Run Build Command(s):/usr/bin/make cmTC_59bd7/fast && /usr/bin/make -f CMakeFiles/cmTC_59bd7.dir/build.make CMakeFiles/cmTC_59bd7.dir/build
make[1]: 进入目录“/home/pi/workspace/pi/VC4C/CMakeFiles/CMakeTmp”
Building C object CMakeFiles/cmTC_59bd7.dir/src.c.o
/usr/bin/cc -DCMAKE_HAVE_LIBC_PTHREAD -o CMakeFiles/cmTC_59bd7.dir/src.c.o -c /home/pi/workspace/pi/VC4C/CMakeFiles/CMakeTmp/src.c
Linking C executable cmTC_59bd7
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_59bd7.dir/link.txt --verbose=1
/usr/bin/cc -DCMAKE_HAVE_LIBC_PTHREAD -rdynamic CMakeFiles/cmTC_59bd7.dir/src.c.o -o cmTC_59bd7
/usr/bin/ld: CMakeFiles/cmTC_59bd7.dir/src.c.o: in function `main':
src.c:(.text+0x34): undefined reference to `pthread_create'
/usr/bin/ld: src.c:(.text+0x3c): undefined reference to `pthread_detach'
/usr/bin/ld: src.c:(.text+0x48): undefined reference to `pthread_join'
collect2: error: ld returned 1 exit status
make[1]: *** [CMakeFiles/cmTC_59bd7.dir/build.make:87:cmTC_59bd7] 错误 1
make[1]: 离开目录“/home/pi/workspace/pi/VC4C/CMakeFiles/CMakeTmp”
make: *** [Makefile:121:cmTC_59bd7/fast] 错误 2
Source file was:
#include <pthread.h>
void* test_func(void* data)
{
return data;
}
int main(void)
{
pthread_t thread;
pthread_create(&thread, NULL, test_func, NULL);
pthread_detach(thread);
pthread_join(thread, NULL);
pthread_atfork(NULL, NULL, NULL);
pthread_exit(NULL);
return 0;
}
Determining if the function pthread_create exists in the pthreads failed with the following output:
Change Dir: /home/pi/workspace/pi/VC4C/CMakeFiles/CMakeTmp
Run Build Command(s):/usr/bin/make cmTC_16556/fast && /usr/bin/make -f CMakeFiles/cmTC_16556.dir/build.make CMakeFiles/cmTC_16556.dir/build
make[1]: 进入目录“/home/pi/workspace/pi/VC4C/CMakeFiles/CMakeTmp”
Building C object CMakeFiles/cmTC_16556.dir/CheckFunctionExists.c.o
/usr/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create -o CMakeFiles/cmTC_16556.dir/CheckFunctionExists.c.o -c /usr/share/cmake-3.16/Modules/CheckFunctionExists.c
Linking C executable cmTC_16556
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_16556.dir/link.txt --verbose=1
/usr/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create -rdynamic CMakeFiles/cmTC_16556.dir/CheckFunctionExists.c.o -o cmTC_16556 -lpthreads
/usr/bin/ld: 找不到 -lpthreads
collect2: error: ld returned 1 exit status
make[1]: *** [CMakeFiles/cmTC_16556.dir/build.make:87:cmTC_16556] 错误 1
make[1]: 离开目录“/home/pi/workspace/pi/VC4C/CMakeFiles/CMakeTmp”
make: *** [Makefile:121:cmTC_16556/fast] 错误 2
Performing C SOURCE FILE Test CMAKE_HAVE_LIBC_PTHREAD failed with the following output:
Change Dir: /home/pi/workspace/pi/VC4C/CMakeFiles/CMakeTmp
Run Build Command(s):/usr/bin/make cmTC_68bb2/fast && /usr/bin/make -f CMakeFiles/cmTC_68bb2.dir/build.make CMakeFiles/cmTC_68bb2.dir/build
make[1]: 进入目录“/home/pi/workspace/pi/VC4C/CMakeFiles/CMakeTmp”
Building C object CMakeFiles/cmTC_68bb2.dir/src.c.o
/usr/bin/cc -DCMAKE_HAVE_LIBC_PTHREAD -o CMakeFiles/cmTC_68bb2.dir/src.c.o -c /home/pi/workspace/pi/VC4C/CMakeFiles/CMakeTmp/src.c
Linking C executable cmTC_68bb2
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_68bb2.dir/link.txt --verbose=1
/usr/bin/cc -DCMAKE_HAVE_LIBC_PTHREAD -rdynamic CMakeFiles/cmTC_68bb2.dir/src.c.o -o cmTC_68bb2
/usr/bin/ld: CMakeFiles/cmTC_68bb2.dir/src.c.o: in function `main':
src.c:(.text+0x34): undefined reference to `pthread_create'
/usr/bin/ld: src.c:(.text+0x3c): undefined reference to `pthread_detach'
/usr/bin/ld: src.c:(.text+0x48): undefined reference to `pthread_join'
collect2: error: ld returned 1 exit status
make[1]: *** [CMakeFiles/cmTC_68bb2.dir/build.make:87:cmTC_68bb2] 错误 1
make[1]: 离开目录“/home/pi/workspace/pi/VC4C/CMakeFiles/CMakeTmp”
make: *** [Makefile:121:cmTC_68bb2/fast] 错误 2
Source file was:
#include <pthread.h>
void* test_func(void* data)
{
return data;
}
int main(void)
{
pthread_t thread;
pthread_create(&thread, NULL, test_func, NULL);
pthread_detach(thread);
pthread_join(thread, NULL);
pthread_atfork(NULL, NULL, NULL);
pthread_exit(NULL);
return 0;
}
Determining if the function pthread_create exists in the pthreads failed with the following output:
Change Dir: /home/pi/workspace/pi/VC4C/CMakeFiles/CMakeTmp
Run Build Command(s):/usr/bin/make cmTC_9b2e8/fast && /usr/bin/make -f CMakeFiles/cmTC_9b2e8.dir/build.make CMakeFiles/cmTC_9b2e8.dir/build
make[1]: 进入目录“/home/pi/workspace/pi/VC4C/CMakeFiles/CMakeTmp”
Building C object CMakeFiles/cmTC_9b2e8.dir/CheckFunctionExists.c.o
/usr/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create -o CMakeFiles/cmTC_9b2e8.dir/CheckFunctionExists.c.o -c /usr/share/cmake-3.16/Modules/CheckFunctionExists.c
Linking C executable cmTC_9b2e8
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_9b2e8.dir/link.txt --verbose=1
/usr/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create -rdynamic CMakeFiles/cmTC_9b2e8.dir/CheckFunctionExists.c.o -o cmTC_9b2e8 -lpthreads
/usr/bin/ld: 找不到 -lpthreads
collect2: error: ld returned 1 exit status
make[1]: *** [CMakeFiles/cmTC_9b2e8.dir/build.make:87:cmTC_9b2e8] 错误 1
make[1]: 离开目录“/home/pi/workspace/pi/VC4C/CMakeFiles/CMakeTmp”
make: *** [Makefile:121:cmTC_9b2e8/fast] 错误 2
Update:
pi@raspberrypi:~/workspace/pi/VC4C/CMakeFiles $ find /lib -name "*pthread*"
/lib/arm-linux-gnueabihf/libpthread.so.0
/lib/arm-linux-gnueabihf/libpthread-2.28.so
/lib/aarch64-linux-gnu/libpthread.so.0
/lib/aarch64-linux-gnu/libpthread-2.28.so
What are your versions of:
/usr/bin/cc
Cmake:3.16.3-3~bpo10+1 gcc/g++:4:8.3.0-1
Thx a lot for your time, I have verified my project on the Raspberry Pi 4B. :)
Just FYI, if you are not aware, VC4CL won't work at all on 64-bit Raspbian or Raspberry Pi 4.
To solve the build problem, the only thing I can think of is to update your GCC, 4.8 is quite old, maybe that fixes something...
Just FYI, if you are not aware, VC4CL won't work at all on 64-bit Raspbian or Raspberry Pi 4.
To solve the build problem, the only thing I can think of is to update your GCC, 4.8 is quite old, maybe that fixes something...
Thank you for your reply, VC4CL only works on Raspberry Pi 3B. I just adjust my ML program to 4B and test it in order to save time. I will try build gcc-6 next week, and I will update if this solve the build problem.
By the way: 64-bit Raspbian is based on Debian, and its package is directly from debian arm64, which means some package is really old.
Thank you for your reply, VC4CL only works on Raspberry Pi 3B. I just adjust my ML program to 4B and test it in order to save time. I will try build gcc-6 next week, and I will update if this solve the build problem.
Is this really only compatible if Raspberry Pi 3B? I'm trying to set it up on my Raspberry Pi 3A and failing so far with the same CMakeErrors as @uniartisan
Also thank you so much for all your work!
my system is raspberry os (64 bit), I have read similar issues: #108 #150, but the issue still occurs. here is my command:
here is CmakeError.txt:
How can I solve this? Wish some one can help me :)