Ⅰ 關於linux下多線程編程。我在usr/include下找到了pthread.h頭文件。但是在編譯的時候報錯。錯誤提醒如下
不需要找到pthread.h頭文件
在編譯的時候要鏈上pthread庫,即加上-lpthread參數.
Ⅱ c++11多線程 寫了#include<thread> 但是編譯卻報錯沒加
#include <string.h>
本身不應發生錯誤,因為它只是嵌入一個string.h文件。C的寫法,C++可用。
有的編譯器是 <strings.h>
如果編譯時告訴你缺了什麼東西,補入就可以了。
using namespace std; 是 #include <stdio.h> #include <stdlib.h> 等 std* (標准) 頭文件。
#include <string> C++ 的寫法
Ⅲ make 多線程編譯會出錯么
程序沒有問題,看看MAKEFILE30行是不是有什麼錯誤,或者換個工程配置,這個應該和工程的配置有關,程序這么簡單,一點問題沒有。
Ⅳ 我使用vs2005編譯MFC程序,在多線程中創建CSocket類,每當使用Create方法時出錯
其實動態使用在其他計算機上也是可以到,應為win2k以上mfc動態庫windows目錄下也是有的。不是必須要靜態庫。
但是你編譯的必須是release版,應為一般系統不帶debug版本的mfc庫。除非裝了vc.
2.出問題,請把錯誤信息給出,幫你分析,比如編譯錯誤,鏈接錯誤
Ⅳ C++編寫的多線程通信程序,代碼編譯沒有錯誤(vc),可是服務端與客戶端就是連接不上,望高手解答
我調試了你的代碼,你的代碼是沒有問題的,雖然不能使用,但是正常的Socket通訊流程是可以進行的。而且我調試的時候伺服器和客戶端代碼都返回通訊成功。accept()返回的socket為124,connect返回0,說明通訊是正常的。你需要從操作系統環境找原因了。
調試截圖如下:
伺服器端accept返回socket為124
Ⅵ 用VC編程出現好多錯誤,說是執行CL.EXE時出錯
參考一下vc的常見錯誤吧。
最近在看《深入淺出MFC》,書中候先生所有的程序都是利用makefile進行編譯與連接的,我想直接利用VC++6.0進行編譯與連接,下面的是書中第六章hello程序的連接時的錯誤,請各位幫忙看看!
--------------------Configuration: HELLO - Win32 Debug--------------------
Linking...
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
Debug/HELLO.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
Creating browse info file...
HELLO.exe - 3 error(s), 0 warning(s)
程序設計到多線程,VC++6.0默認設置可作以下修改:
project->settings->C/C++->Category中選Code Generation->Use Run-time Library選Debug MultiThreaded或MultiThreaded
在創建MFC項目時, 不使用MFC AppWizard向導, 如果沒有設置好項目參數, 就會在編譯時產生很多連接錯誤, 如error LNK2001錯誤, 典型的錯誤提示有:
libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
下面介紹解決的方法:
1. Windows子系統設置錯誤, 提示:
libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Windows項目要使用Windows子系統, 而不是Console, 可以這樣設置:
[Project] --> [Settings] --> 選擇"Link"屬性頁,
在Project Options中將/subsystem:console改成/subsystem:windows
2. Console子系統設置錯誤, 提示:
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
控制台項目要使用Console子系統, 而不是Windows, 設置:
[Project] --> [Settings] --> 選擇"Link"屬性頁,
在Project Options中將/subsystem:windows改成/subsystem:console
3. 程序入口設置錯誤, 提示:
msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16
通常, MFC項目的程序入口函數是WinMain, 如果編譯項目的Unicode版本, 程序入口必須改為wWinMainCRTStartup, 所以需要重新設置程序入口:
[Project] --> [Settings] --> 選擇"C/C++"屬性頁,
在Category中選擇Output,
再在Entry-point symbol中填入wWinMainCRTStartup, 即可
4. 線程運行時庫設置錯誤, 提示:
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
這是因為MFC要使用多線程時庫, 需要更改設置:
[Project] --> [Settings] --> 選擇"C/C++"屬性頁,
在Category中選擇Code Generation,
再在Use run-time library中選擇Debug Multithreaded或者multithreaded
其中,
Single-Threaded 單線程靜態鏈接庫(release版本)
Multithreaded 多線程靜態鏈接庫(release版本)
multithreaded DLL 多線程動態鏈接庫(release版本)
Debug Single-Threaded 單線程靜態鏈接庫(debug版本)
Debug Multithreaded 多線程靜態鏈接庫(debug版本)
Debug Multithreaded DLL 多線程動態鏈接庫(debug版本)
單線程: 不需要多線程調用時, 多用在DOS環境下
多線程: 可以並發運行
靜態庫: 直接將庫與程序Link, 可以脫離MFC庫運行
動態庫: 需要相應的DLL動態庫, 程序才能運行
release版本: 正式發布時使用
debug版本: 調試階段使用
Ⅶ Linux下mpi多線程編程的編譯問題
看設置了,我的反正可以運行。\r\n不過 X 裡面運行字元界面的程序有個問題就是 X 一般不會顯示終端窗口,所以除非你的程序是窗口程序,不然什麼顯示都沒有就運行完成退出了。 \r\n--------------\r\n有的 linux 有一個\\「在終端中運行」的項目,...
Ⅷ C++多線程mutex對象作為類的成員變數為何編譯報錯attempted to reference a deleted function
是你構造TicketShop對象的地方,可能是你的主函數里,你沒貼出來,可能是寫了類似:
TicketShops1;
TicketShops2=s1;
這樣的代碼,而你的TicketShop類使用默認的拷貝構造函數,導致上面代碼第二句構造s2時會調用mutex的拷貝構造函數,而mutex的拷貝構造函數是=delete的,也就是不允許拷貝構造,所以編譯報錯
當你改成全局的mutex聲明時,拷貝構造TicketShop對象不會引發mutex對象的拷貝構造,所以就沒問題。
Ⅸ 一個簡單的多線程問題,編譯通過了函數卻不執行。請問是什麼問題
定時器也可以實現。 非同步就是在調用後,不用等待結果,就返回; 線程雖然可以做到,定時器也可以,只不過相對於線程來說,定時器不是以開辟線程來進行接下來的非同步操作,而是以消息的形式,有系統定時調用來實現非同步操作。
Ⅹ java多線程問題,編譯出現錯誤,提示:找不到合適的構造器
Thread的構造方法接收一個Runnable介面類型的參數,你傳給他的不是Runnable介面的實現類對象,自然報錯了