1. 程式人生 > >解決undefined reference to `pthread_create'的方法

解決undefined reference to `pthread_create'的方法

        工作任務需要,寫了一個小的程式模組來通過uart與下位機進行通訊獲取資料,於是想到線上程中監聽uart字元裝置檔案描述符並處理下位機傳過來的資料。在單獨編譯這個小模組的測試程式時,程式報錯如下:

        

        納悶,我的程式中明明包含了標頭檔案:

                #include<pthread.h>

        編譯的時候,也指定了連線動態庫:-lpthread參考網上別人的解決方法,增加 -lrt但是依舊報這個錯誤!

        無奈之餘,在系統目錄下尋找pthread相關的庫檔案,卻沒有這個庫。原來pthread

庫不是Linux 系統預設的庫!在我使用的ubuntu系統庫目錄:/lib/usr/lib目錄下根本找不到pthread相關的庫檔案。回過頭檢視我的Makefile,沒有指定連線的庫的路徑,而我的系統環境變數LD_LIBRARY_PATH中也沒有加入相關的庫的路徑,而我使用的是交叉編譯環境,所以只能在交叉編譯工具鏈相關的路徑中去找這個庫了。果然在交叉編譯工具鏈目錄下的lib目錄下找到libpthread-0.9.32.1.so於是修改Makefile如下:

       

       

        重新編譯,問題解決!

相關推薦

解決undefined reference to `pthread_create'的方法

        工作任務需要,寫了一個小的程式模組來通過uart與下位機進行通訊獲取資料,於是想到線上程中監聽uart字元裝置檔案描述符並處理下位機傳過來的資料。在單獨編譯這個小模組的測試程式時,程式

ubuntu 12.04 codeblocks undefined reference topthread_create'解決方法

settings---》compiler and bug settings --》link settings 在左邊新增libpthread.a  ,右邊新增 -lpthread即可。 ubuntu libpthread.a 的路徑為 /usr/lib/x86_64-lin

ubuntu 下沒有pthread庫以及報undefined reference to 'pthread_create'的解決方法

最近在Ubuntu下編譯一個程式,需要使用多執行緒庫pthread,但是編譯時總是提示“undefined reference to 'pthread_create'”的錯誤,如下圖所示: 要解決這

thread_join.c:(.text+0x6f): undefined reference to `pthread_create' 問題的解決

今天在測試一個執行緒例子時,結果出現如下錯誤 [[email protected] fzf]# gcc thread_join.c -o thread_join /tmp/cc1HozRv.o: In function `main': thread_join.

求助codeblocks高手,解決undefined reference to問題

inf ren blank pic 解決 deb i94 weibo lan F44M73褂壓臼7MCAhttp://www.docin.com/sina_6370744687 2萍ZL5乃l7凍V徽3http://docstore.docin.com/uht219 1

Linux程式設計時使用gcc編譯.c出現以下問題,pthread.c:(.text+0x29): undefined reference to `pthread_create'collect2: err

Linux程式設計時使用gcc編譯.c出現以下問題 client.c:(.text+0x13e): undefined reference to `pthread_create' collect2: ld 返回 1   解決方法如下: 只需在用gcc編譯時加上-pthread選項即

Windows編譯OpenCV4Android解決undefined reference to std錯誤

OpenCV4Android支援三種使用方式 1.Java層呼叫 2.NDK呼叫動態庫(方便,但是會包含整個.so庫) 3.NDK呼叫靜態庫(靈活,比如沒有用到機器學習模組,libopencv_ml.a裡的程式碼是不會打包到動態庫裡的) 通過連結靜態庫的方式使用

解決undefined reference to `cv::VideoCapture::VideoCapture()'

本機環境:Ubuntu16.04        Eclipse IDE for C/C++ Developers Version: Photon Release (4.8.0) Build 右鍵點選專案,在專案屬性的C++ B

Linux Ubuntu執行執行緒程式出現undefined reference topthread_create’和undefined reference to ‘pthread_join’錯誤。

Linux Ubuntu執行執行緒程式出現undefined reference to ‘pthread_create’和undefined reference to ‘pthread_join’錯誤。 編寫好執行緒程式碼,進行編譯 gcc xiancheng.c -o xiancheng 出

Linux 編譯報錯 undefined reference to `pthread_create'

在編譯Linux下多執行緒程式的時候出現錯誤資訊, 寫好程式碼,進行編譯時,出現如下錯誤提示資訊:  thread.c:(.text+0xae): undefined reference to `pthread_create' thread.c:(.

gcc編譯執行緒程式需帶-lpthread選項(否則出錯:undefined reference to `pthread_create')

程式中兩處使用了pthread_create函式,包含了標頭檔案#include <pthread.h>。 gcc xxx.c -o xxx 編譯時出現以下錯誤: 分析: 用gcc編譯使用了POSIX thread的程式時通常需要加額外的選項,以連結到庫。 此

解決undefined reference to `boost::filesystem::detail::copy_file

在已經連結了boost_filesystem的情況下,仍然報錯沒有連結(如題),標頭檔案中加入以下及解決問題 #define BOOST_NO_CXX11_SCOPED_ENUMS #includ

undefined reference to `pthread_create'的錯誤。

晚上編譯一個工程,TMD編譯時總是報thread.o: In function `create_thread': thread.c:(.text+0x1ef): undefined reference to `pthread_create' collect2: ld ret

Makefile中要編譯多執行緒是報undefined reference to `pthread_create'類似錯誤

Makefile中要編譯包含執行緒庫的檔案時,把-lpthread放在哪裡呢? 答:把-lpthread放在連結那句編譯命令的最後即可啦。如:  $(CC) -o test_threadpool main.o threadpool.o  -lpthread 編譯階段是不用

執行緒編譯問題(undefined reference to `pthread_create')

#include <stdio.h> #include <pthread.h> #include <stdlib.h> void printids(const char *s) { pid_t pid;

Linux 編譯報錯 -- undefined reference to 問題解決方法 (具體'pthread_create'和opencv看文章最後兩條)

最近在Linux下程式設計發現一個詭異的現象,就是在連結一個靜態庫的時候總是報錯,類似下面這樣的錯誤: (.text+0x13): undefined reference to `func'     關於undefined reference這樣的問題,大家其實經常會遇到

Linux 編譯報錯 -- undefined reference to 問題解決方法 (具體'pthread_create'和opencv看文章最後兩條)

最近在Linux下程式設計發現一個詭異的現象,就是在連結一個靜態庫的時候總是報錯,類似下面這樣的錯誤: (.text+0x13): undefined reference to `func'     關於undefined reference這樣的問題,大家其實經常會遇

linux下開發,解決cocos2d-x中編譯出現的一個小問題, undefined reference to symbol &#39;pthread_create@@GLIBC_2.2.5&#39;

water span x86 code bject data- ace 技術分享 inux 解決cocos2d-x中編譯出現的一個小問題 對於cocos2d-x 2.×中編譯中,若頭文件裏引入了#include "cocos-ext.h",在進行C++編譯的時候會遇到例

Clion lua 編譯報錯: undefined reference to `lual_newstate' 在win10上面編譯lua5.3.5以及解決方法

在CmakeLists.txt裡面新增:  ``` include_directories("D:\\lua\\lua-5.3.5\\lua-5.3.5\\dist\\include") link_directories("D:\\lua\\lua-5.3.5\\lua-5.3.5

undefined reference to `vtable for YAML::BadConversion' 報錯的解決方法

 Bug   在編譯用到yaml程式的時候,遇到如下報錯: /home/liuhang/Documents/Momenta/catkin_ws/devel/lib/libloam.so: undefined reference to `vtable for Y