우분투 14.04. gcc-arm-linux-gnueabihf, g ++-arm-linux-gnueabihf (utopic에서 4.8 및 4.9를 시도했습니다)를 설치했습니다.
std :: thread를 사용하는 코드 :
#include <iostream>
#include <chrono>
#include <future>
void secondList()
{
const std::chrono::seconds twoSeconds(2);
for (size_t i = 0; i != 300; ++i)
{
std::this_thread::sleep_for(twoSeconds);
std::cout << "2s\n";
}
}
int main(int, const char *[])
{
auto secondThr = std::async(std::launch::async, secondList);
return 0;
}
로 컴파일 :
arm-linux-gnueabihf-g++ --std=c++11 main.cpp -lpthread -o main
RPI에서는 실패합니다.
pi@raspberrypi ~ $ ./main
pure virtual method called
terminate called without an active exception
Aborted
RPI 작업 컴파일 :
pi@raspberrypi ~ $ g++ --std=c++0x main.cpp -lpthread -o main
Pi 이미지 2015-02-16-raspbian-wheezy, Pi의 g ++ (Debian 4.6.3-14 + rpi1) 4.6.3.
나는 컴파일러 옵션을 시도했습니다 -mcpu=cortex-a7
, -mcpu=cortex-a8
그리고 -D__GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}
그와 유사한 질문에서 언급되었다.
: 또한 PPA에서 g ++ 시도 http://ppa.launchpad.net/linaro-maintainers/toolchain/ubuntu 정확한을
왜 이런 일이 일어나고 작동하는 크로스 컴파일러를 얻는가?