导航:首页 > 源码编译 > 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多线程编译有没有问题相关的资料

热点内容
javajdbcmysql连接 浏览:469
制作linux交叉编译工具链 浏览:751
编程负数除以正数 浏览:508
app和aso有什么区别 浏览:324
手机vmap是什么文件夹 浏览:34
塔科夫锁服如何选择服务器 浏览:286
消费者生产者问题java 浏览:59
程序员筱柒顾默结婚的时候 浏览:576
安卓截长屏怎么弄 浏览:473
优信办理解压手续怎么那么慢 浏览:603
私有云服务器一体机安全吗 浏览:428
python的tk界面禁用鼠标 浏览:184
怎么看服务器mac地址 浏览:290
安卓如何将图镜像翻转 浏览:325
操作系统设计与实现pdf 浏览:547
长虹空调遥控什么app 浏览:739
四轴外圆编程教程 浏览:947
vb在线编译环境 浏览:884
编译原理全书知识点总结 浏览:908
javaoa开发 浏览:883