반응형
C ++ 스레드, std :: system_error-작업이 허용되지 않습니까?
이 질문에 이미 답변이 있습니다.
그래서 64 비트 kubuntu linux 버전 13.04에서 스레드를 테스트하는 프로그램을 작성했습니다. 사실 저는 테스트 프로그램을 작성하는 다른 사람에게서 코드를 빼앗 겼습니다.
#include <cstdlib>
#include <iostream>
#include <thread>
void task1(const std::string msg)
{
std::cout << "task1 says: " << msg << std::endl;
}
int main(int argc, char **argv)
{
std::thread t1(task1, "Hello");
t1.join();
return EXIT_SUCCESS;
}
다음을 사용하여 컴파일했습니다.
g++ -pthread -std=c++11 -c main.cpp
g++ main.o -o main.out
그런 다음 실행 :
./main.out
제쳐두고, 내가 'ls -l'일 때 main.out은 모든 실행 파일과 같이 녹색 텍스트로 표시되지만 이름 끝에 별표가 있습니다. 왜 이런거야?
손에있는 문제로 돌아 가기 : main.out을 실행했을 때 오류가 발생했습니다.
terminate called after throwing an instance of 'std::system_error'
what(): Operation not permitted
Aborted (core dumped)
이 문제를 해결하는 방법에 대한 아이디어가 있습니까?
pthread가 제대로 연결되지 않았습니다. 아래 명령을 시도해보십시오 (참고 : 순서 문제).
g++ main.cpp -o main.out -pthread -std=c++11
또는
두 가지 명령으로 수행
g++ -c main.cpp -pthread -std=c++11 // generate target object file
g++ main.o -o main.out -pthread -std=c++11 // link to target binary
참조 URL : https://stackoverflow.com/questions/17274032/c-threads-stdsystem-error-operation-not-permitted
반응형
'program tip' 카테고리의 다른 글
클래스 대신 인터페이스에서 객체 인스턴스를 만드는 이유는 무엇입니까? (0) | 2020.12.30 |
---|---|
탐색 창 : 태블릿에서 항상 열림으로 설정 (0) | 2020.12.30 |
Docker 컨테이너 및 메모리 소비 (0) | 2020.12.30 |
Python : 클래스 및 인스턴스 변수 이해 (0) | 2020.12.30 |
화살표 함수에 인수 배열이없는 이유는 무엇입니까? (0) | 2020.12.30 |