相关疑难解决方法(0)

clang和gcc之间的区别

我在不同的项目中使用了这两个编译器.

它们在代码处理和输出生成方面有何不同?例如两者gccclang具有-O2优化的选项.它们在优化代码方面是否以相同的方式运行(高级别)?我做了一点测试,例如,如果我有以下代码:

int foo(int num) {
    if(num % 2 == 1)
        return num * num;
    else
        return num * num +1;  
}
Run Code Online (Sandbox Code Playgroud)

以下是带有-ng的clang和gcc的输出程序集:

----gcc 5.3.0-----                              ----clang 3.8.0----
foo(int):                                       foo(int):
        movl    %edi, %edx                              movl    %edi, %eax
        shrl    $31, %edx                               shrl    $31, %eax
        leal    (%rdi,%rdx), %eax                       addl    %edi, %eax
        andl    $1, %eax                                andl    $-2, %eax
        subl    %edx, %eax                              movl    %edi, %ecx
        cmpl    $1, %eax                                subl    %eax, %ecx
        je      .L5                                     imull   %edi, %edi
        imull   %edi, %edi                              cmpl …
Run Code Online (Sandbox Code Playgroud)

c optimization gcc clang

15
推荐指数
2
解决办法
1万
查看次数

铿锵"你好,世界!" Windows中的链接错误

我刚下载了CLang源代码,使用CMake创建了一个Visual C++ 10 IDE工作区,并构建了Visual C++ 10.0(express)中的所有内容.

现在我在hello world上遇到了一堆链接器错误:

d:\dev\test> type con >foo.cpp
#include <iostream>
using namespace std;
int main() { cout << "Hello, cling-clong world!" << endl; }
^Z

d:\dev\test> clang++ foo.cpp
foo-839435.o : error LNK2019: unresolved external symbol __ZSt4cout referenced in function _main
foo-839435.o : error LNK2019: unresolved external symbol __ZdlPv referenced in function __ZNSt14error_categoryD0Ev
foo-839435.o : error LNK2019: unresolved external symbol __ZSt18uncaught_exceptionv referenced in function __ZNSo6sentry
D2Ev
foo-839435.o : error LNK2019: unresolved external symbol ___cxa_rethrow referenced in function …

c++ std clang linker-errors clang++

11
推荐指数
1
解决办法
7130
查看次数

性能比较 - gcc和llvm-gcc

我将gcc和llvm-gcc与hmmer中的-O3选项和spec cpu2006基准测试中的mcf进行了比较.令人惊讶的是,我发现gcc在两种情况下都击败了llvm-gcc.是因为-O3有不同的含义吗?我应该如何建立实验以获得公平的比较?

顺便说一下,我只是通过改变makefile中的cc来做实验.

谢谢,博

llvm

3
推荐指数
1
解决办法
6428
查看次数

标签 统计

clang ×2

c ×1

c++ ×1

clang++ ×1

gcc ×1

linker-errors ×1

llvm ×1

optimization ×1

std ×1