首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

MinGW 編譯多執行緒程式問題與解決方案

     編輯:關於C語言

在 Linux 環境下用 gedit + gcc 學習一段時間 C 語言,發現自己越來越佩服 Linux 高手,居然不用 IDE 也能開發代碼。我做不到,所以回到了 Windows 的懷抱。

MinGW 是 Windows 版本的 GNU C/C++ 工具集(主要包含編譯器 gcc、連結器 make、偵錯器 gdb)。Eclipse 是很好用的 Java IDE,CDT (C/C++ Development Tools) 是使 Eclipse 支援 C/C++ 開發的外掛。本人開發環境:Win7 + Eclipse + MinGW + CDT。

1. 配置 C/C++ 開發環境

右鍵「我的電腦」→ 屬性 → 進階 → 環境變數:

  1. 在 PATH 加入 C:\MinGW\bin
  2. 新建 LIBRARY_PATH,值設為 C:\MinGW\lib(標準庫位置)
  3. 新建 C_INCLUDE_PATH,值設為 C:\MinGW\include
  4. 新建 CPLUS_INCLUDE_PATH,值設為 C:\MinGW\include\c++\3.4.2;C:\MinGW\include\c++\3.4.2\mingw32;C:\MinGW\include\c++\3.4.2\backward;C:\MinGW\include

2. 設定 Eclipse 環境變數

Eclipse 的 Project → Properties → C/C++ Build → Environment 查看對應的 PATH 變數,主要看有沒有添加包含 MinGW bin 目錄的 PATH 變數。若未正確設定,編譯時會報錯無法執行 g++ 或 gcc。

3. 設定多執行緒動態連結庫

Project → Properties → C/C++ Build → Settings → Tool Settings → GCC C++ Linker → Libraries,添加 Libraries (-l):pthread

4. 簡單執行緒池範例

(文中包含完整的執行緒池實作代碼,包含 pool_init、pool_add_worker、pool_destroy、thread_routine 等函式,以及測試主程式)

5. 常見問題及解決

  1. Error launching builder (make -k all):將 C:\MinGW\bin 下的 mingw32-make.exe 更名為 make.exe,Eclipse 預設抓取 make 而非 mingw32-make
  2. Launch failed, binary not found:未指定編譯器。在 Eclipse 中設定:Window → Preferences → C/C++ → New CDT Project Wizard → Makefile Project,Binary Parser 取消 Elf Parser 改選 PE Windows Parser;或在專案 Properties → C/C++ Build → Settings → Binary Parser 設定
  3. undefined reference to 'pthread_create/join':pthread 庫非 Linux 系統預設庫,MinGW 未內建。解決:下載 pthreads-w32-2-8-0-release.exe,解壓後將 Pre-built.2 中的 libpthreadGC2.a 改名為 libpthread.a 複製到 C:\MinGW\lib,pthread.h 複製到 C:\MinGW\include
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved