Howto Compile QT4 Programs With Clang

Clang 简介

Clang (发音为 /ˈklæŋ/ 类似英文单字 clang) 是一个 C、C++ 和 Objective-C 编程语言的编译器前端。它采用了底层虚拟机(LLVM)作为其后端。它的目标是提供一个GNU编译器套装(GCC)的替代品。作者是克里斯·拉特纳,在苹果公司的赞助支持下进行开发,而源代码授权是使用类 BSD 的开源授权。

Clang 专案包括 Clang 前端和 Clang 静态分析器等。(摘自维基)

安装

在 Ubuntu 12.04 上安装 Clang 和 llvms:

::sh
$ sudo apt-get install clang llvm-3.0

使用 Clang 编译 QT4

1、首先编辑一个 hello.cpp,其内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <QApplication>
#include <QLabel>

int main(int argc, char *argv[])
{
QApplication app(argc, argv);

QLabel *label = new QLabel;
label->setText("<center><h1><font color=blue>Hello World!</font></h1></center>");
label->setWindowTitle("QT");
label->resize(200, 50);

label->show();

return app.exec();
}

2、生成.pro

打开终端,进入到 hello.cpp 所在目录,运行以下命令:

1
$ qmake -project

3、编辑.pro

编辑hello.pro文件,并在文件末尾增加以下内容:

TARGET_EXT = .bc
QMAKE_EXT_OBJ = .bc
QMAKE_CXXFLAGS += -emit-llvm
QMAKE_CXX = clang++
QMAKE_CC = clang
QMAKE_LINK = $(CXX)
QMAKE_RUN_CXX = $(CXX) $(CXXFLAGS) $(INCPATH) -c $(SOURCES) -o $obj
QMAKE_RUN_CC = $(CC) $(CCFLAGS) $(INCPATH) -c $(SOURCES) -o $obj

4、编译

1
2
$ qmake
$ make

5、运行
运行程序,屏幕上将出现 QT 程序:

1
$ ./hello

参考资料