j***y 发帖数: 2074 | 1 C里面是没有bool这个类型的,直到C99出现之后。
我发现系统中有stdbool.h这个header,但是gnu c library里面没有:
---
qxu@gso-linuxcom-01(pts/49):~/opensrc/glibc-2.11[120]> locate stdbool.h
/usr/lib/gcc-lib/i386-redhat-linux/3.2.3/include/stdbool.h
/usr/lib/gcc-lib/i386-redhat-linux7/2.96/include/stdbool.h
/lib/ssa/gcc-lib/i386-redhat-linux-gnu/3.5-tree-ssa/include/stdbool.h
/export/WindRiver/3.0/bellona/0.02/toolchain/x86-linux2/lib/gcc/powerpc-wrs-
linux-gnu/4.3.2/include/stdbool.h
/export/WindRiver/3.0/bellona/0.02/toolchain/x86-lin |
|
d********g 发帖数: 10550 | 2 $ which gcc
看下gcc在哪里,没有的话装(我一般喜欢装g++,顺便就把gcc装了)
$ sudo apt-get update; sudo apt-get upgrade; sudo apt-get install g++
gcc一般在/usr/bin/,所以不大可能是$PATH没设好 |
|
b*****d 发帖数: 61690 | 3 【多维新闻】一直以来,美国都向海湾产油国家提供保护支持。但是国防部长哈格尔14
日却罕见地表示美国并不足以确保这些国家的安全。
综合媒体5月15日报道,过去30年里,海湾阿拉伯国家合作委员会(GCC)的六个成员国
作为世界原油的重要出产国,一直依赖英美两国提供的军事援助保卫自身安全。英美两
国提供的援助并没有明确成文,于是,美国防长此次访问中东时即表态称美国也不能抱
着呢过海湾这些产油国的安全,这些国家需要自己对自己的安全负责。
哈格尔14日在利雅得参加GCC会议期间表态称:“与美国的双边关系以及美国军事力量
的存在并不足够确保地区安全。美国与海湾国家的约定本意在于支持与帮助在GCC内部
建立更加巩固的多边关系,而并非取而代之。”
哈格尔还要求参加会议的海湾各国强化各自预防及阻止侵犯的能力,加强国内国防合作。
据悉美国的这一转变主要是因为国防费用的削减以及逐渐减小的对中东原油的依赖性。
2014年2月,哈格尔宣布将削减美国军费;同时,美国在经过30年后又开始出口石油。
另外,美国自2012年起实施的重返亚太的政策也是这样的转变出现的主要原因之一。
在伊朗核谈进入第四轮的紧要关头,奥巴马... 阅读全帖 |
|
|
l******9 发帖数: 579 | 5 I am trying to download and run the c code on Linux for
UNIX Network Programming, Volume 1, Second Edition: Networking APIs: Sockets
and XTI, Prentice Hall, 1998, ISBN 0-13-490012-X. It is by W. Stevens
Richard
http://kohala.com/start/unpv12e/unpv12e.tar.gz
But, when I build the code, I got error:
gcc -g -O2 -D_REENTRANT -Wall -c -o connect_nonb.o connect_nonb.c
In file included from connect_nonb.c:1:
unp.h:114: error: redefinition of âstruct in_pktinfoâ
make: *** [connect_nonb.o] Erro... 阅读全帖 |
|
|
s*****i 发帖数: 4 | 7 12年教育的洗礼,被各种以结论形式出现的中心主旨大意包抄的你,是否也曾经怀疑过
课本背后的真实,意欲一窥历史本来的面目?
所谓汉文学,所谓历史,所谓政治,所谓各种意识形态,你有否自己独特
的见解,欲抒己见,吐而后快?
5000年文化的积淀,上古起流传下来的各种国粹,你有多少了解?
风水玄学,中医药理,你是否也曾为这些智慧感叹,而又百思不得其解?
为什么绿豆汤可以清热,红豆粥却会上火?为什么食物会有各种属性?把
脉的原理又到底是什么?
今年的“COOL PEOPLE TEA SOCIAL”就在这个万物峥嵘的季节再度上演!
继上次与学校各位教授大神联谊成功后,这次我们GCC特意请来校外名人与麦屯学子近
距离交流,以制造思维碰撞的火花!
本次TEA SOCIAL 邀请的嘉宾有:
余杰,北京大学中文系硕士。在北大求学期间,创作近两百万字的文化评论和思想随笔
。一九九八年,部分作品结集为《火与冰》出版,以对北大现状和中国社会、文化、教
育等领域的尖锐批判,在读者和学界引起巨大反响,被视为九十年代以来知... 阅读全帖 |
|
d****z 发帖数: 9503 | 8 再说一个故事。就发生在物理系。大家要知道物理系大楼DRL是个
很奇怪的地方。白天是物理系,晚上就很难说了。比如周末晚上
经常变成教会。你没看错,是基督教教会。门口临时树了牌子,
叫什么gcc教会。呵呵,不知道这里有没有人用gcc的,我是天天
用。闲话少说,这个gcc教会每次都上百号人来,唱诗声绕着实验
仪器转三天不绝。除了周末,平时晚上,物理系经常成为一个成
人夜校。也几十来号人来上课。大多数是黑人,三十左右的岁数。
上课内容嘛,我旁听了几次,比1+1=2高不到哪里去。有一天晚
上,我在办公室,有人敲门,开门,一个老黑问我买不买计算器。
我说不买。老黑又问我,一般买了计算器能不能做分数计算。我说
能。老黑就走了。我出去锻炼,快两个小时后回来,又碰到这个老
黑,还在DRL溜达。他好像不认识我了,又来那两个计算器的问题。
我估计这位是这个夜校的学生。于是我就开始怀疑这个夜校是不是
专门收智障人士的夜校呀。 |
|
d****z 发帖数: 9503 | 9 再说一个故事。就发生在物理系。大家要知道物理系大楼DRL是个
很奇怪的地方。白天是物理系,晚上就很难说了。比如周末晚上
经常变成教会。你没看错,是基督教教会。门口临时树了牌子,
叫什么gcc教会。呵呵,不知道这里有没有人用gcc的,我是天天
用。闲话少说,这个gcc教会每次都上百号人来,唱诗声绕着实验
仪器转三天不绝。除了周末,平时晚上,物理系经常成为一个成
人夜校。也几十来号人来上课。大多数是黑人,三十左右的岁数。
上课内容嘛,我旁听了几次,比1+1=2高不到哪里去。有一天晚
上,我在办公室,有人敲门,开门,一个老黑问我买不买计算器。
我说不买。老黑又问我,一般买了计算器能不能做分数计算。我说
能。老黑就走了。我出去锻炼,快两个小时后回来,又碰到这个老
黑,还在DRL溜达。他好像不认识我了,又来那两个计算器的问题。
我估计这位是这个夜校的学生。于是我就开始怀疑这个夜校是不是
专门收智障人士的夜校呀。 |
|
s*****i 发帖数: 4 | 10 12年教育的洗礼,被各种以结论形式出现的中心主旨大意包抄的你,是否也曾经怀疑过
课本背后的真实,意欲一窥历史本来的面目?
所谓汉文学,所谓历史,所谓政治,所谓各种意识形态,你有否自己独特
的见解,欲抒己见,吐而后快?
5000年文化的积淀,上古起流传下来的各种国粹,你有多少了解?
风水玄学,中医药理,你是否也曾为这些智慧感叹,而又百思不得其解?
为什么绿豆汤可以清热,红豆粥却会上火?为什么食物会有各种属性?把
脉的原理又到底是什么?
今年的“COOL PEOPLE TEA SOCIAL”就在这个万物峥嵘的季节再度上演!
继上次与学校各位教授大神联谊成功后,这次我们GCC特意请来校外名人与麦屯学子近
距离交流,以制造思维碰撞的火花!
本次TEA SOCIAL 邀请的嘉宾有:
余杰,北京大学中文系硕士。在北大求学期间,创作近两百万字的文化评论和思想随笔
。一九九八年,部分作品结集为《火与冰》出版,以对北大现状和中国社会、文化、教
育等领域的尖锐批判,在读者和学界引起巨大反响,被视为九十年代以来知... 阅读全帖 |
|
b*****l 发帖数: 9499 | 11 阶段性胜利了:在 .c 下面,makefile 和 omp_set_num_threads 管用,num_threads
不管用。在 .cpp 下面,omp_set_num_threads 和 num_threads 管用,makefile 不管
用(所以只好写了个 bash script)。。。
大家帮我看看我的 makefile 哪里出错了吧。一个叫做 CMakefile,一个叫做
Makefile,code 一样(除了指向的文件名),结果不一样,后者的 g++ 后面多了些空
格,最后少了一堆参数。。。
$ make -f CMakefile
gcc -c -o CTestOMP.o CTestOMP.c -I. -g -O -fopenmp
gcc -o CTestOMP CTestOMP.o -I. -g -O -fopenmp -lm
$ make -f Makefile
g++ -c -o TestOMP.o TestOMP.cpp
g++ -o TestOMP TestOMP.o -I. -g -O -fopenmp -Wall -lm
##############... 阅读全帖 |
|
y***u 发帖数: 5243 | 12 公司没有买过intel的超级编译器,比较只是在VS的编译器和gcc之间进行的。的确就是
同一个fft的实现,gcc在linux下面造出来的东西,能比VS造出来的快很多。
而且windows的IO library似乎有问题,大规模频繁的IO导致系统越来越慢。所以长时
间的计算会越来越慢,这就是速度差距的来源。如果linux是1分钟的计算量,而
windows可能就1分15秒。但是linux一个小时的计算量,windows可能就要3个小时了。
UI方面,大概是我计算过度,导致开一个Explorer都非常慢--即使刚刚非常
intensive的计算已经结束了。
GCC
20% |
|
S**I 发帖数: 15689 | 13 说个普通用户不关心的问题:Xcode 4.1把默认的编译器从GCC改成了LLVM-GCC,把GCC
拿掉了,结果现在很多以前在SL上能编译的*NIX软件现在在Lion上都没法编译了。 |
|
a****a 发帖数: 5763 | 14 《Mac OS X背后的故事》系列文章将为大家介绍Mac OS X的发行版本、技术历史、相关
人物等内容。本文是系列连载的第二篇,主要的故事来源是Linus Torvalds的自传《
Just for Fun: The Story of an Accidental Revolutionary》。
Steve Jobs于1997年回归Apple
Steve Jobs对Mac OS X的考虑
1997年,Steve Jobs回归,开发下一代操作系统的工作被提上日程。此刻的时代背景是
像Linux这样的开源软件大行其道。随着网络的发展,使得像Red Hat、VA Linux之类的
企业成为爆发户,把泡沫越吹越大。Steve Jobs承认Linux的好处,甚至在若干年后介
绍Mac OS X底层的Darwin时还不忘在幻灯片上写道:Darwin是类似Linux的系统。而当
时精明的Steve Job在考虑下面几个问题。
第一,NeXTSTEP的内核和外围工具中,BSD代码维护起来需要大量人力,而且各分支的
BSD发展显然不如Linux快。很多功能都没有,需要Apple自己做。
第二,像Appl... 阅读全帖 |
|
S**I 发帖数: 15689 | 15 GCC编译C/C++问题不大,但是编译Obj-C就不行了,苹果也是觉得GCC靠不住才另起炉灶
搞LLVM。现在LLVM做的相当不错,编译C/C++,LLVM的错误信息要比GCC清楚得多。 |
|
d*********8 发帖数: 2192 | 16 搞llvm-gcc这种折中的折腾方案应该也是对早期llvm没把握 呵呵
现在觉得llvm行了 但又要考虑历史兼容 还得留着llvm-gcc
gcc不支持新功能 只能去掉了 |
|
l******n 发帖数: 9344 | 17 asus z170-ar主板,asus GTX 1070, ubuntu 16.04 os
secure boot已经disable
安装driver如下
sudo apt-get purge nvidia-*
sudo apt-get autoremove
sudo reboot
sudo apt-get install gcc-4.9 g++-4.9
sudo ln -s /usr/bin/gcc-4.9 /usr/bin/gcc -f
sudo ln -s /usr/bin/g++-4.9 /usr/bin/g++ -f
Download CUDA 8.0 RC, download the runfile(local), when installing cuda 8.0
decline on installing NVIDIA drivers. then reboot.
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-367
sud... 阅读全帖 |
|
|
h**********y 发帖数: 1293 | 19 编译和link用了 m32和 -m elf-i386
编译时候没有问题
link时候出现
/usr/bin/ld: i386:x86-64 architecture of input file `/usr/lib/gcc/x86_64-
linux-gnu/4.3.3/../../../../lib/crt1.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file `/usr/lib/gcc/x86_64-
linux-gnu/4.3.3/../../../../lib/crti.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file `/usr/lib/gcc/x86_64-
linux-gnu/4.3.3/crtbegin.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 a |
|
r****t 发帖数: 10904 | 20 lenny is ancient. testing is too flaky. Use unstable+experimental instead.
http://packages.debian.org/experimental/gcc-4.5
你都 care gcc 版本了,怎么可能只用 stable? stable installation 为了安全一般不装 gcc 的。
testing 是最不稳定的,unstable+experimental 比 testing 稳定多了。 |
|
m******1 发帖数: 418 | 21 硬件连接正常(指示灯亮)
在命令行模式下,显示网卡类型,驱动程序,状态是disabled。这是否说明系统识别这
些网卡,不用重新安装驱动程序,只需要用命令激活网卡?还是要安装新的驱动程序?
这两个网卡JMC250/AR9285问题很多,尽管网上有很多讨论,花了很多时间还是没有搞
定。
另外,如果需要安装新的驱动程序,从哪个网站能找到可以在命令行模式下安装的完
整的gcc package? (Ubuntu 10.04 server 没有提供gcc安装包,而安装网卡驱动程序
需要gcc编译)
多谢。 |
|
S*A 发帖数: 7142 | 22 我不是 Google 的,但是我可以说这个完全可以放心。这个和使用 online service
不一样, Open Source 的就收不回来了。 Gcc 已经接纳 Go 为一部分了,后面 gcc
collection 就有 go 了,这样没有 Google, go 也可以独立存活了。
和所有 Open Source 一样,关键是要有 Community. 我看了一下 go-nuts mailing
list. 感觉 Community 还不错,bug fix 也很快。肯定比 gcc 快多了。关键是有几
个老 ATT Lab 牛人在里面做比较正确的 trade off. 到了这个分上我觉得已经可以
放心了。
C 和 Python 中间的空白始终是要有东西填的。是好东西就会有人用,Go
使用比较爽而且速度快,这个我完全可以感觉到还挺 additive 的。
我相信从历史的角度来看,Go 应该会是挺成功的。 |
|
z****g 发帖数: 339 | 23 Mac OS X 背后的故事(二)——Linus Torvalds的短视
http://www.programmer.com.cn/6617/
文/王越
《Mac OS X背后的故事》系列文章将为大家介绍Mac OS X的发行版本、技术历史、相关
人物等内容。本文是系列连载的第二篇,主要的故事来源是Linus Torvalds的自传《
Just for Fun: The Story of an Accidental Revolutionary》。
Steve Jobs对Mac OS X的考虑
1997年,Steve Jobs回归,开发下一代操作系统的工作被提上日程。此刻的时代背景是
像Linux这样的开源软件大行其道。随着网络的发展,使得像Red Hat、VA Linux之类的
企业成为爆发户,把泡沫越吹越大。Steve Jobs承认Linux的好处,甚至在若干年后介
绍Mac OS X底层的Darwin时还不忘在幻灯片上写道:Darwin是类似Linux的系统。而当
时精明的Steve Job在考虑下面几个问题。
第一,NeXTSTEP的内核和外围工具中,BSD代码维护起来需要大量人... 阅读全帖 |
|
l******9 发帖数: 579 | 24 I am trying to download and run the c code on Linux for
UNIX Network Programming, Volume 1, Second Edition: Networking APIs: Sockets
and XTI, Prentice Hall, 1998, ISBN 0-13-490012-X. It is by W. Stevens
Richard
http://kohala.com/start/unpv12e/unpv12e.tar.gz
But, when I build the code, I got error:
gcc -g -O2 -D_REENTRANT -Wall -c -o connect_nonb.o connect_nonb.c
In file included from connect_nonb.c:1:
unp.h:114: error: redefinition of âstruct in_pktinfoâ
make: *** [connect_nonb.o] Erro... 阅读全帖 |
|
l**t 发帖数: 31 | 25 用GSL库可以用ATLAS来替换CBLAS。据说atlas是根据不同CPU优化的。
我的问题是,如果只用 cblas库,程序一样可以运行
gcc example.o -lgsl -lcblas -lm
加上 atlas,计算速度会更快
gcc example.o -lgsl -lcblas -latlas -lm
可是atlas和cblas里面由重名的函数,gcc是怎么知道该用哪个库里的实现? |
|
r****t 发帖数: 10904 | 26 在 arr 里面找最大值的一段 code, gcc-2.95 没问题,gcc-4.3 不行:
template
T
max_over_all(const Array &arr)
{
Array::const_iterator a_it = arr.begin();
T max_val = *a_it; // Our first guess is the first value.
for (++a_it; a_it != arr.end(); ++a_it)
if (*a_it > max_val)
max_val = *a_it;
return max_val;
}
用 gcc-4.3 错误如下:
...
/.../my_blitz.h: In function `T blitz::max_over_all(const blitz::Array
numtype, N_rank>&)':
/.../my_blitz.h:95: |
|
|
b***y 发帖数: 2799 | 28 ☆─────────────────────────────────────☆
crystalike (Vader) 于 (Mon Sep 26 16:46:54 2005) 提到:
I sort of remember that there is a occation that you have to use
this pointer to access the member func in a template class.
this->foo () ...
just can not remember exactly how and why?
anyone got the idea?
☆─────────────────────────────────────☆
pptwo (pp) 于 (Mon Sep 26 17:50:42 2005) 提到:
http://gcc.gnu.org/onlinedocs/gcc-4.0.1/gcc/Name-lookup.html#Name-lookup
☆───────────────────────────────── |
|
g****y 发帖数: 436 | 29 添加
#include
之后,得到文件 BEDFileData.o,编译成功!
但是随后又发现另外的一个cpp文件编译错误,提示
'EXIT_FAILURE' was not declared in this scope
我最近才开始用gcc,但是这个代码是2005年由一个大公司写成的,之前也有人编译成功
,请问gcc的版本对于代码由影响吗?之前好像听说比如autoconf 只有2.13版本才能编
译gcc自己的source。 |
|
d****p 发帖数: 685 | 30
Just check the following link and seems gcc is aggressively supporting c++0x
(experimentally).
http://gcc.gnu.org/projects/cxx0x.html
Anyway for poor guys like us, gcc 3.x.x is the only thing we can touch
everyday :-(
No idea if anyone intends to use these features in vs10 for production code. |
|
h********n 发帖数: 1671 | 31 这个是GCC使用的算法吗?还是对应某一Linux版本的算法?
我的问题具体说是在Linux上使用GCC编译。前几天就发现从RHEL4u8换成RHEL6后,GCC
版本没变,malloc的算法不一样了,结果一些程序的输出结果也和以前不一样了。其实
两种结果都是正确的,但是头儿要求必须和原来的结果一模一样,很麻烦。
这个问题里的大数组原来是直接从系统调用的,后来头儿要求改用老程序的一个array
类,这样可以和其它部分保持统一,结果最后统计出的内存调用一下子多了许多。 |
|
t****t 发帖数: 6806 | 32 let me show you an example:
/* 1.c */
#include
void bar(int* a, float* b)
{
a[5]=200;
b[5]=1.0;
printf("%d\n", a[5]);
printf("&a[5]=%p &b[5]=%p\n", a+5, b+5);
}
/* 2.c */
void bar(int*, float*);
int main()
{
int a[10];
float* b=(float*)a;
bar(a, b);
}
What do you think the result is?
compile with -O2 and -O0, you get different results:
$ gcc -O0 1.c 2.c
$ a.out
1065353216
&a[5]=0x7fffb3828964 &b[5]=0x7fffb3828964
$ gcc -O2 1.c 2.c
$ a.out
200
&a[5]=0x7fff2e7... 阅读全帖 |
|
l******9 发帖数: 579 | 33 I am trying to download and run the c code on Linux for
UNIX Network Programming, Volume 1, Second Edition: Networking APIs: Sockets
and XTI, Prentice Hall, 1998, ISBN 0-13-490012-X. It is by W. Stevens
Richard
http://kohala.com/start/unpv12e/unpv12e.tar.gz
But, when I build the code, I got error:
gcc -g -O2 -D_REENTRANT -Wall -c -o connect_nonb.o connect_nonb.c
In file included from connect_nonb.c:1:
unp.h:114: error: redefinition of âstruct in_pktinfoâ
make: *** [connect_nonb.o] Erro... 阅读全帖 |
|
c**y 发帖数: 172 | 34 我的下面的程序,在gcc可以编译通过,但是g++抱怨multi-definition of x。哪个大
侠指点一下为什么g++报这个错。
====程序====
1.m.c
#include
#include "l1.h"
extern void incx();
int main() {
x = 10;
px();
incx();
return 0;
}
2.l1.h
int x;
void px();
3.l1.c
#include
#include "l1.h"
void px()
{
printf("x = %d\n",x);
}
4.l2.c
#include
#include "l1.h"
void incx()
{
x += 1;
px();
}
========
gcc编译命令
gcc m.c l1.c l2.c
g++编译命令及报错
-bash-2.05b$ g++ m.c l1.c l2.c
/tmp/cc4JpQXE.o(.bss+0x0): multiple d... 阅读全帖 |
|
D*******a 发帖数: 3688 | 35 nice
also beware which gcc you are using (linux vs osx). I had this experience
still unexplained:
发信人: DrumMania (嫑跑,兲), 信区: Programming
标 题: 运行时间比较
发信站: BBS 未名空间站 (Sat Apr 26 14:06:50 2008), 转信
有两台机器:
A: P4-2.6GHT, 512M memory, Fedora 8, GCC 4.1.2
B: P4-2.8GHT, 1.5G memory, Mac OS X 10.5.2, GCC 4.0.1 (Xcode)
用-O3编译同一个程序(min cut graph partitioning using simulated annealing)
运行时间差很远
A只用了2:21,但是B却用了5:51
按道理B应该运算能力更强,可是实际上却差那么远,怎么解释呢? |
|
p**o 发帖数: 3409 | 36
表达观点要有论据或论证。我不是做体系结构这块的,说错话、甚至
讲外行话的可能性也有。我在这里把我的依据以及理解稍微展开一下,
希望你反驳的时候言之有据,无论对错大家都能受益。
“广大cpu/memory/cache设计者几个decades以来的努力”,的确为
上层提供了一些必要的intrinsics,但各级I/O策略是具体依赖上层
软件来控制实现的,硬件没有聪明到能自动优化这些。
不要说硬件,就连编译器都很难识别上层的语义做优化。比如GCC,
就连对矩阵indexing的处理都非常笨拙;Intel的ICC/IFC可以向量化
内循环,从而更方便用SSE指令集做优化,但是没有专门对矩阵相关
的各级I/O做优化——这些优化是Intel放在MKL数值库里做的。
我的根据之一是这篇科普文章(文章虽长,但值得每个程序员一读):
Ulrich Drepper, "What Every Programmer Should Know About Memory"
http://people.freebsd.org/~lstewart/articles/cpumemory.pdf
文章前部讲RAM/cac... 阅读全帖 |
|
t****t 发帖数: 6806 | 37 ok, you win, I do the experiment for you.
One of the results is inlined, the other is not.
I'll omit the comments.
******30.C*******
#include
#include
using namespace std;
IL double foo(double x)
{
double a=10;
for (int i=0; i<10; i++) {
a=a+sin(i*x);
}
return a;
}
int main()
{
double g;
cin>>g;
cout<
}
$ g++ -O2 -S -D IL="" 30.C -o - | c++filt >! 30_noinline.s
$ g++ -O2 -S -D IL="inline" 30.C -o - | c++filt > ! 30_inline.s
$ g++ -v ... 阅读全帖 |
|
t****t 发帖数: 6806 | 38 没用过llvm, 两年前好象是没有graphite的, 现在不知道有没有. gcc肯定有.
这是gcc -S -O2 -floop-interchange的结果, 你可以看到两个一模一样. 我用的gcc 4
.7.2, 但是4.4就有了.
.globl _Z10zeroarray1Pd
.type _Z10zeroarray1Pd, @function
_Z10zeroarray1Pd:
.LFB0:
.cfi_startproc
leaq 8388608(%rdi), %rdx
.p2align 4,,10
.p2align 3
.L2:
leaq 8192(%rdi), %rax
.p2align 4,,10
.p2align 3
.L3:
movq $0, (%rdi)
addq $8, %rdi
cmpq %rax, %rdi
jne .L3
cmpq %rdi, %rdx
jne .L2
r... 阅读全帖 |
|
w***g 发帖数: 5958 | 39 如果要用标准C语言写一个跟现在的gcc或者visual C里面的C编译器的代码质量相当,
然后带一个跟visual C相当的编辑器和调试器, 支持标准的library和runtime, 允许参
考各种标准和论文, 但是不能参考gcc或者vc的源代码, 如果让一个人按full time job
的工作强度去写, 假设这个人是个熟练工(从CS PhD毕业算起, 或者从software
engineer工作5年算起), 但是之前没有编译器相关的研究经验, 从30岁开始写, 到死之
前如果能写出来的话这个人已经非常牛了.
这种事情历史上是有人干过的, 比如Richard Stallman:
从1974年到1976年做出第一个可运行的EMACS.
1983年开始GNU project, 1987年发布GCC的第一个版本.
1986年写出了GDB的第一个版本.
目前这三个中任意一个都已经远远超过了当年的复杂度, 但是如果让Richard Stallman
再回到壮年, 把这三个重新做一遍并做到这些软件1990年的水平, 我估计他5年时间能
做出来. |
|
c*****n 发帖数: 75 | 40 这个问题的确考了一些平时自己想当然而没有深究的东西。
1) int i = i;
这个相当于
int i; //define and allocate storage on stack.
i = i; // assignment operator.
所以 i 是 uninitialized. 选 A)
2) void main()
研究了一下。 对main()的prototype, C/C++ 不同的年代的标准有不同的要求
C-90: 应该return int, 但允许compiler自由加入对其他return type的support.
也就是说, void main(), float main()都可能被你的compiler 支持。
C-99: 同 C-90
C++: 只允许 int main();
gcc 选择了支持 void main().
g++ 没得选, 不能支持 void main().
由以下结果也可看出结论:
gcc -std=c99 // ok;
gcc -pedantic -std=c99 // warning: return type of ‘main’ is... 阅读全帖 |
|
m********r 发帖数: 334 | 41 class example {
public:
example(string str){
cout <<"ctor with string "<
example() {
cout<<"ctor without string" <
example( example& rhs){
cout<<"copy ctor "<
};
int main (int argc, char* argv[])
{
string str = "123456789";
example e1(str);
example e2 = str;
example e3 = e1;
example e4 = example();
return 0;
}
这个例子来自C++Primer,在VS2010可以编译,gcc下e2 and e4报错:no matching
function for call to example::example(example)
如果在copy constr... 阅读全帖 |
|
S*A 发帖数: 7142 | 42 bootstrap 是给 compiler 自己 compiler 自己。
例如有个新的 C compiler, 就叫 clang 吧。
clang 最早是用 gcc 开发出来的,当 clang 成熟到
一定程度的时候,就可以用 clang 来取代 gcc 来
编译 clang 自己。那末以后版本的 clang 就可以
不依赖于 gcc 了。bootstrap 大概就是这个意思吧。 |
|
S*A 发帖数: 7142 | 43 我就简短点说吧,
你的 rdtsc 第一个版本先是有后面的 cpuid 冲掉了前面的 rdtsc 的
EAX EDX 寄存器,
修改改后的第二个版本应该先做 CPUID 然后做 RDTSC。看
Intel 手册。
你的 rdtscp 的汇编版本放开 out of order 不说,rdtscp 会
clobber ECX 寄存器,在里面存 CPU ID。你的汇编没有告诉
gcc 你破坏了 ECX 寄存器。虽然你用了 volatile, 那个只是
告诉 gcc 你有其他的 memory side effect (其实你没有)。
你仍然需要告诉 gcc clobber ECX。
然后正确的读 RDTSC 和 RDTSCP 的嵌入汇编代码在 24 楼
的 Intel pdf 里面都有,我就不重复了。
我没有用虚拟机。
你那个 1000 cycle 的差别不可能是中间被 schedule 其他的
thread。 单单 schedule 一次 task 就要 1000 cycle 这个数
量极。你要换出去换回来是不可能的。而且也不能解释这个
刚刚好每个 work() 都被抢先 schedule ... 阅读全帖 |
|
m********5 发帖数: 17667 | 44 linux下真能用的C++ IDE 也就是这个Qt creator了,算是最稳定的
虽说它自称是轻量级,但比claim为重量级的还好用
BTW: 最近hit若干 gcc 4.6和gcc 4.7的bugs, 汇编写patch很痛苦啊,决定招个专门搞
gcc的大牛来干这个算了。 |
|
w*s 发帖数: 7227 | 45 boost 1.55
这是原先工作的版本gcc 4.6.2或者 gcc 4.8.5。
现在升级gcc到5.3.1,然后list的定义乱了,boost本身有一个,然后gnu toolchain里
有一个不一样的。
然后查下去boost在用std:list !!!
尼玛,靠,都不知道这些人在干什么。 |
|
d***c 发帖数: 21 | 46 I have no idea what c compiler you have on your IRIX. you may or may not have
gcc installed. "/opt/gcc/bin/gcc" is just a fictional example.
try asking your sysadmin or someone who also uses the system. |
|
m****x 发帖数: 6 | 47 /bow first
This is a stupid simple question.
Why I cannot get "clean" functioning in make?
eg. This is my makefile:
prog: prog.o aid.o
gcc -o prog.o aid.o
prog.o: prog.c
gcc -c prog.c
aid.o: aid.c
gcc -c aid.c
clean:
rm *.o
everything is fine, except that "clean" task does not take place. Why?
/bow again |
|
c*****t 发帖数: 1879 | 48 There are several places to check...
If the administrator built the gcc/g++ by himself, he can put libstdc++.a
in just about any place since the path info is given at the compile time.
Usually, what you need to do is to search
/usr/lib/
/usr/local
/usr/local/lib
and look for directories w/ gcc/g++ prefixes. Some times, checking the
location of g++/gcc (since they can be a soft link indicate where the
stuff is). On solaris, also check /opt.
Also, do the man page on g++ a |
|
t******q 发帖数: 117 | 49 【 以下文字转载自 Linux 讨论区,原文如下 】
发信人: thomaswq (无情,清恰似风,SF, senior frog), 信区: Linux
标 题: 连结静态库to共享库问题:
发信站: Unknown Space - 未名空间 (Wed Nov 5 04:54:14 2003) WWW-POST
连结静态库to共享库问题:
各位:
我再给一个media player 写plugin
plug_in 格式为DL in linux,
target file: plug_in.so.0.0.0.0
用dlopen, dlsym取得routines.
用libtool,编译.
libtool gcc -o xx.cpp
libtool gcc xx.la xx.la xx.la -lm
Now, 我需要调用硬件解压卡,
the card 提供interface 库,是静态连接库. libbrd.a
如何连接?
如用
libtool gcc xx.la xx.la xx.la -lm -L./ -lbrd,
编译连接ok,
nm plug_in.so.0.0.0 | g |
|
l******9 发帖数: 579 | 50 I am trying to download and run the c code on Linux for
UNIX Network Programming, Volume 1, Second Edition: Networking APIs: Sockets
and XTI, Prentice Hall, 1998, ISBN 0-13-490012-X. It is by W. Stevens
Richard
http://kohala.com/start/unpv12e/unpv12e.tar.gz
But, when I build the code, I got error:
gcc -g -O2 -D_REENTRANT -Wall -c -o connect_nonb.o connect_nonb.c
In file included from connect_nonb.c:1:
unp.h:114: error: redefinition of âstruct in_pktinfoâ
make: *** [connect_nonb.o] Erro... 阅读全帖 |
|