3 回答

TA貢獻(xiàn)1804條經(jīng)驗 獲得超2個贊
答案是由SO C ++聊天的一位好心人提供的。
看來此行為是由gcc中的錯誤引起的。
該錯誤討論的最后評論中提供的解決方法確實可以解決該問題:
-Wl,--no-as-needed

TA貢獻(xiàn)2021條經(jīng)驗 獲得超8個贊
我有更高級的版本(4.8.4而不是4.8.1),并且我測試了以上所有三個答案。事實上:
-pthread 單獨工作:
g ++ -std = c ++ 11 -o main -pthread main.cpp
-Wl,--no-as-needed獨自一人行不通。
-lpthread獨自一人行不通。
-Wl,--no-as-needed并-lpthread 一起工作:
g ++ -std = c ++ 11 -o main -Wl,-無需按需main.cpp -lpthread
我的版本是“ g ++(Ubuntu 4.8.4-2ubuntu1?14.04.1)4.8.4”。

TA貢獻(xiàn)1820條經(jīng)驗 獲得超9個贊
已經(jīng)為qtcreator做出了答案:
LIBS += -pthread
QMAKE_CXXFLAGS += -pthread
QMAKE_CXXFLAGS += -std=c++11
對于控制臺g ++:在這里
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
添加回答
舉報