I use c++ eclipse in Raspberry pi 3
when i try make some code about thread
i can't compile that. it's doesn't work
finally i find solution
1. Go to Project Properties -> C/C++ Build -> Settings -> Linker
2. Add Libraries(-l), just typing "pthread"
3. Click the OK button
4. Compile again
라즈베리파이에서 C++ 이클립스를 사용하고 있다.
쓰레드를 쓸 일이 생겨서 사용하려고 하는데, 컴파일이 되지 않았다.
여러가지 방법을 찾아봤지만,
C11에서 사용할 수 있다는 thread.h파일은 안되는 것 같았다.
std::thread가 std의 멤버가 아닌 것으로 보아,
라즈베리파이에서 제공되는 C++는 thread.h파일을 이용할 수 없는 것 같다.
따라서 <pthread.h>를 사용하였는데, 코드에는 에러가 뜨지 않지만
컴파일만 하면 알 수 없는 컴파일 에러가 떴다.
해결 방법은 다음과 같다.
1. 해당 프로젝트파일의 Properties -> C/C++ Build -> Setting -> Linker -> Libraries로 들어간다.
2. Libraries(-l)에 "pthread"를 추가한다.
3. 다시 컴파일을 시도해 본다.
스레드를 확인해볼 예제 파일은 다음과 같다.
튜토리얼은 다음 사이트를 참조하였다.
http://www.tutorialspoint.com/cplusplus/cpp_multithreading.htm
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #include <iostream> #include <cstdlib> #include <pthread.h> using namespace std; #define NUM_THREADS 5 void *PrintHello(void *threadid) { long tid; tid = (long)threadid; cout << "Hello World! Thread ID, " << tid << endl; pthread_exit(NULL); } int main () { pthread_t threads[NUM_THREADS]; int rc; int i; for( i=0; i < NUM_THREADS; i++ ){ cout << "main() : creating thread, " << i << endl; rc = pthread_create(&threads[i], NULL, PrintHello, (void *)i); if (rc){ cout << "Error:unable to create thread," << rc << endl; exit(-1); } } pthread_exit(NULL); } | cs |
'IT > C|C++' 카테고리의 다른 글
[C] #ifndef을 이용한 header 중복 방지 (0) | 2017.04.21 |
---|---|
[C] 재귀 함수 Recursion function (0) | 2017.03.28 |
[MinGW/Eclipse c++] Compile Error (0) | 2016.06.06 |
[Eclipse C++]Install Eclipse c++/ Eclipse c++ 설치하기 (0) | 2016.06.06 |
[MinGW]Install MinGW/ MinGW 설치하기 (0) | 2016.06.06 |