當我執行在我的嵌入式Linux沒有下面的程序發生了:如何解釋strace的輸出
#include <boost/thread/thread.hpp>
#include <boost/lockfree/spsc_queue.hpp>
#include <iostream>
#include <boost/atomic.hpp>
void Test(void)
{
std::cout << "Hello World" << std::endl;
}
int main(int argc, char* argv[])
{
std::cout << "init";
boost::thread producer_thread(Test);
producer_thread.join();
std::cout << "end";
}
# ./prog -> nothing happens here
最後從strace的輸出幾行:
open("/lib/libboost_thread.so.1.55.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\240\272\0\0004\0\0\0"..., 512) = 512
lseek(3, 95536, SEEK_SET) = 95536
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1200) = 1200
lseek(3, 95226, SEEK_SET) = 95226
read(3, "A'\0\0\0aeabi\0\1\35\0\0\0\0055T\0\6\3\10\1\t\1\22\4\24\1\25\1"..., 40) = 40
exit_group(1) = ?
+++ exited with 1 +++
#
交叉編譯libbost_thread正確安裝在/ lib。
main()被調用之前的程序退出。該程序在我的Ubuntu下正常運行。
目標:ARM與buildroot的(sama5d3)
工具鏈ARM-Linux的gnueabihf-
問候
哇。這是upvoted?什麼是_程序_?!?我的意思是,你顯示的只是它正確加載boost_thread共享庫,然後退出。你期望什麼_停止?爲什麼? – sehe 2015-02-24 13:03:08
嗨,程序應該創建一個線程並打印一個「Hello World」。調用main()之前的程序出口。 – user3068649 2015-02-24 13:44:41
你需要向我們展示_如何讓它這樣做。在這一點上,任何人最好的猜測是PEBCAK(參見[Select Is Not Broken](http://blog.codinghorror.com/the-first-rule-of-programming-its-always-your-fault/)) – sehe 2015-02-24 13:46:10