@popo
我想知道的是这种情况话,mpicc是不是会把所有同名的视为一个?
如果是的话,对我做优化没有影响
如果不是的话,其实提供的代码本身就有问题...
L
LyricZ 发布的帖子
-
RE: 貌似发现一个编译器bug?
-
貌似发现一个编译器bug?
我用sw5cc编译两个包含【相同名字而且已经被初始化的全局变量】的文件来生成目标文件,然后如果用sw5cc链接,他会说我冲突,但是用mpicc链接就没有问题...
代码:
f1.c:
int var = 2;void func1() {
var = 1;
}f2.c:
int var = 2;void func2() {
var = 2;
}main.c
# include <stdio.h>void func1();
void func2();extern int var;
int main() {
func1();
func2();
printf("%d\n", var);
return 0;
}编译:
sw5cc -host main.c f1.c f2.c
然后会出现链接失败
但是
sw5cc -host -c f1.c
sw5cc -host -c f2.c
mpicc f1.o f2.o main.o
可以链接成功....我发现这个的原因是因为提供代码里Argument.h里面有强符号定义....