导航:首页 > 源码编译 > gcc多线程编译有没有问题

gcc多线程编译有没有问题

发布时间:2022-07-08 01:42:48

⑴ 关于c++中多线程的问题

必须要工程设置是多线程的。输出都混在一起看不清,把它们写入文件就容易看了,那个this指针直接传就行,没有必要多转一次:

class A
{
public:
int i;
HANDLE jb;
A(int j)
{
i=j;
jb=CreateThread(NULL,0,lang,LPVOID(this),0,NULL);
}
static DWORD WINAPI lang(LPVOID p){
((A*)p)->move();
return 0;
}
void move()
{
char buf[100];
sprintf( buf, "%d.txt", i );
std::ofstream fout( buf );
int j=0;
while(1){
fout<<"this "<<i<<" :"<<j++<<endl;
}
}
};

⑵ 求助 线程问题 gcc编译通过 g++编译失败

C++禁止将void指针随意赋值给其他指针。
因此你在把void thread(void)函数的入口转换为void*,然后当作参数调用pthread_create时就出现错误,因为pthread_create的参数里应该是指向形如void* fun(void*)函数的一个指针。

可以修改void thread(void)为void* thread(void*),然后去掉调用时的(void*)强制转换,错误消除。

⑶ 现在用gcc编译出来的程序能在多个核的cpu上一起跑吗还是只能在一个核上跑

gcc编译出来的程序能在多个核的cpu上一起跑,也可以在一个核心上执行——至少MinGW开发的多线程程序在Win2003的确如此。
国外很早就有人研究多核心进程调度问题,国内研究的人似乎不普遍。

⑷ gcc纠错,一个有错误的多线程求孪生素数的c程序,20小时之内解决追加悬赏分

~~ 能不能把你的问题再说清楚一点? 我跑你的程序 我看到输出了。我看你程序就只有一个printf()函数~~

unsigned int size = ((totbits / 32)) + 1;

bitArray = malloc((sizeof(unsigned int)) * size);

这两条语句是不是应该写在 while()循环的后面?否则你的数大于1000就会出现段错误了

⑸ 用gcc怎么编译多线程程序 最好写出命令

果已经写好了源文件,那么cd进所在的目录gccfilename.c-ofilename./filename

⑹ 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++ 的写法

⑺ 如何用gcc在linux下编译多线程c语言程序

如果已经写好了源文件,那么cd进所在的目录gccfilename.c-ofilename./filename

⑻ gcc编译线程程序,为什么要加-lpthread,头文件已经包含了<pthread.h>了啊

-lpthread是链接库,

<pthread.h>只有申明,实现部分都在库里面。

创建线程时一般是把函数的指针做参数,所以要加一个取地址符号。

ret=pthread_create(&id,NULL,(void *)&thread,NULL);

另外,建议要检查一下创建线程的返回值ret是否成功,防止影响后面的代码。

(8)gcc多线程编译有没有问题扩展阅读:

每个语言编译器都是独立程序,此程序可处理输入的原始码,并输出组合语言码。全部的语言编译器都拥有共通的中介架构:一个前端解析符合此语言的原始码,并产生一抽象语法树,以及一翻译此语法树成为GCC的暂存器转换语言〈RTL〉的后端。

编译器最佳化与静态程序码解析技术(例如FORTIFY_SOURCE,一个试图发现缓冲区溢位〈buffer overflow〉的编译器)在此阶段应用于程序码上。最后,适用于此硬件架构的组合语言程序码以Jack Davidson与Chris Fraser发明的算法产出。

⑼ linux里面线程编译运行问题

#gcc a.c -o a #此句的-o a说明输出目标文件为“a”;
#gcc -Wall-lpthread threadcreatetest.c #此句未注明输出目标文件名,系统默认输出为a.out,所以编译之后执行./a.out文件。
如果上句也没有指明“ -o a ”的话,输出也是a.out,你可以试试

⑽ LINUX下多线程编译问题

你编译的时候有加多线程连接选项吗? 要加上 -lpthread 或者 -pthread (尽量选后者)
例如 gcc -pthread -o test main.cpp

另外你的线程创建的不对,函数指针不能强转类型(这里也不用转)
pthread_create(&procter_t,NULL,(void*)procter_f,NULL);
pthread_create(&consumer_t,NULL,(void*)consumer_f,NULL);

应该是
pthread_create(&procter_t,NULL,procter_f,NULL);
pthread_create(&consumer_t,NULL,consumer_f,NULL);

阅读全文

与gcc多线程编译有没有问题相关的资料

热点内容
喷油螺杆制冷压缩机 浏览:579
python员工信息登记表 浏览:377
高中美术pdf 浏览:161
java实现排列 浏览:513
javavector的用法 浏览:982
osi实现加密的三层 浏览:233
大众宝来原厂中控如何安装app 浏览:916
linux内核根文件系统 浏览:243
3d的命令面板不见了 浏览:526
武汉理工大学服务器ip地址 浏览:149
亚马逊云服务器登录 浏览:525
安卓手机如何进行文件处理 浏览:71
mysql执行系统命令 浏览:930
php支持curlhttps 浏览:143
新预算法责任 浏览:444
服务器如何处理5万人同时在线 浏览:251
哈夫曼编码数据压缩 浏览:426
锁定服务器是什么意思 浏览:385
场景检测算法 浏览:617
解压手机软件触屏 浏览:350