LLVM-Clang DragonEgg 插件 for win32

xunxun 2011-12-03 07:35:27
不知道发在哪个板块好,在Linux区应该知道DragonEgg插件的较多吧,因为这个插件一直未能移植到Windows上来,我在先前做的gcc插件功能的基础上(参见http://sourceforge.net/mailarchive/forum.php?thread_name=4E9E5897.8030001%40gmail.com&forum_name=mingw-usershttp://sourceforge.net/mailarchive/forum.php?thread_name=4E9E5C88.70506%40gmail.com&forum_name=mingw-w64-public)做了移植,测试了下还行

编译这个插件其实并不难,难点主要在之前的工作,即在Windows下编译出--enable-plugin的gcc

由于移植方法的缺陷(除非有人提出更好的移植方法),要这样使用DragonEgg插件

使用gcc编译:
gcc -fplugin=dragonegg-cc1.dll test.c

使用g++编译:
g++ -fplugin=dragonegg-cc1plus.dll test.cpp

使用gfortran编译:
gfortran -fplugin=dragonegg-f951.dll test.f90


下载见
http://code.google.com/p/pcxllvm/downloads/list
...全文
341 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
江北百晓生 2012-04-28
  • 打赏
  • 举报
回复
没有搞好,具体配置有什么步骤啊?
江北百晓生 2012-04-26
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]

@echo Start Clang 3.0 tools You can Bulid Program Set v1.0...
@set ClangDir=D:\DevLLVM
@set PATH=%ClangDir%\llvm\bin;%ClangDir%\MinGW\bin;%ClangDir%\MinGW\i686-w64-mingw32\bin;%ClangDir%\MinGW\libe……
[/Quote]这个是我自己写的批处理,路径太长
江北百晓生 2012-04-26
  • 打赏
  • 举报
回复
@echo Start Clang 3.0 tools You can Bulid Program Set v1.0...
@set ClangDir=D:\DevLLVM
@set PATH=%ClangDir%\llvm\bin;%ClangDir%\MinGW\bin;%ClangDir%\MinGW\i686-w64-mingw32\bin;%ClangDir%\MinGW\libexec\gcc\i686-w64-mingw32\4.6.1;%ClangDir%\MinGW\libexec\gcc\i686-w64-mingw32\4.6.1\install-tools;%PATH%
@set Include=%ClangDir%\llvm\include;%ClangDir%\llvm\include\clang;%ClangDir%\llvm\lib\clang\3.0\include;%ClangDir%\llvm\include\clang\Analysis;%ClangDir%\llvm\include\clang-c;%ClangDir%\llvm\include\llvm;%ClangDir%\llvm\include\llvm-c;%ClangDir%\llvm\include\clang\ARCMigrate;%ClangDir%\llvm\include\clang\AST;%ClangDir%\llvm\include\clang\Basic;%ClangDir%\llvm\include\clang\CodeGen;%ClangDir%\llvm\include\clang\Driver;%ClangDir%\llvm\include\clang\Frontend;%ClangDir%\llvm\include\clang\FrontendTool;%ClangDir%\llvm\include\clang\Index;%ClangDir%\llvm\include\clang\Lex;%ClangDir%\llvm\include\clang\Parse;%ClangDir%\llvm\include\clang\Rewrite;%ClangDir%\llvm\include\clang\Sema;%ClangDir%\llvm\include\clang\Serialization;%ClangDir%\llvm\include\clang\StaticAnalyzer;%ClangDir%\llvm\include\clang\StaticAnalyzer\Checkers;%ClangDir%\llvm\include\clang\StaticAnalyzer\Core;%ClangDir%\llvm\include\clang\StaticAnalyzer\Core\BugReporter;%ClangDir%\llvm\include\clang\StaticAnalyzer\Core\PathSensitive;%ClangDir%\llvm\include\llvm\ADT;%ClangDir%\llvm\include\llvm\Analysis;%ClangDir%\llvm\include\llvm\Assembly;%ClangDir%\llvm\include\llvm\Bitcode;%ClangDir%\llvm\include\llvm\CodeGen;%ClangDir%\llvm\include\llvm\CodeGen\PBQP;%ClangDir%\llvm\include\llvm\CodeGen\PBQP\Heuristics;%ClangDir%\llvm\include\llvm\Config;%ClangDir%\llvm\include\llvm\DebugInfo;%ClangDir%\include\llvm\ExecutionEngine;%ClangDir%\llvm\include\llvm\MC;%ClangDir%\llvm\include\llvm\MC\MCParser;%ClangDir%\llvm\include\llvm\Object;%ClangDir%\llvm\include\llvm\Support;%ClangDir%\llvm\include\llvm\TableGen;%ClangDir%\llvm\include\llvm\Target;%ClangDir%\llvm\include\llvm\Transforms;%ClangDir%\llvm\include\llvm\Transforms\IPO;%ClangDir%\llvm\include\llvm\Transforms\Utils;%ClangDir%\MinGW\include;%ClangDir%\MinGW\i686-w64-mingw32\include;%ClangDir%\MinGW\i686-w64-mingw32\include\GL;%ClangDir%\MinGW\i686-w64-mingw32\include\config\i386;%ClangDir%\MinGW\lib\gcc\i686-w64-mingw32\4.6.1\include;%ClangDir%\MinGW\lib\gcc\i686-w64-mingw32\4.6.1\include\c++;%ClangDir%\MinGW\lib\gcc\i686-w64-mingw32\4.6.1\include\c++\backward;%ClangDir%\MinGW\lib\gcc\i686-w64-mingw32\4.6.1\include\c++\bits;%ClangDir%\MinGW\lib\gcc\i686-w64-mingw32\4.6.1\include\c++\debug;%ClangDir%\MinGW\lib\gcc\i686-w64-mingw32\4.6.1\include\c++\decimal;%ClangDir%\MinGW\lib\gcc\i686-w64-mingw32\4.6.1\include\c++\ext;%ClangDir%\MinGW\lib\gcc\i686-w64-mingw32\4.6.1\include\c++\ext\pb_ds;%ClangDir%\MinGW\lib\gcc\i686-w64-mingw32\4.6.1\include\c++\ext\pb_ds\detail;%ClangDir%\MinGW\lib\gcc\i686-w64-mingw32\4.6.1\include\c++\i686-w64-mingw32\bits;%ClangDir%\MinGW\lib\gcc\i686-w64-mingw32\4.6.1\include\c++\parallel;%ClangDir%\MinGW\lib\gcc\i686-w64-mingw32\4.6.1\include\c++\profile;%ClangDir%\MinGW\lib\gcc\i686-w64-mingw32\4.6.1\include\c++\profile\impl;%ClangDir%\MinGW\lib\gcc\i686-w64-mingw32\4.6.1\include\c++\tr1;%ClangDir%\MinGW\lib\gcc\i686-w64-mingw32\4.6.1\include\ssp;%ClangDir%\MinGW\lib\gcc\i686-w64-mingw32\4.6.1\include-fixed;%ClangDir%\MinGW\lib\gcc\i686-w64-mingw32\4.6.1\install-tools;%ClangDir%\MinGW\lib\gcc\i686-w64-mingw32\4.6.1\install-tools\include;%ClangDir%\MinGW\lib\gcc\i686-w64-mingw32\4.6.1\plugin\include;%Include%
@set LIB=%ClangDir%\llvm\lib;%ClangDir%\MinGW\lib;%ClangDir%\MinGW\lib\gcc\i686-w64-mingw32\4.6.1;%ClangDir%\MinGW\lib\gcc\i686-w64-mingw32\4.6.1\debug;%ClangDir%\MinGW\lib\gcc\i686-w64-mingw32\4.6.1\plugin\lib;%LIB%
@set CFLASS=-WL;-native ;%CFLASS%
xunxun 2012-04-26
  • 打赏
  • 举报
回复
clang++ -v main.cpp

main.cpp随便写个符合语法规则的cpp
江北百晓生 2012-04-26
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

clang++ -v 看一下搜索路径即可

把相关的路径的复制到他搜索到的地方
[/Quote]
没有搜索路径。。。
xunxun 2012-04-26
  • 打赏
  • 举报
回复
clang++ -v 看一下搜索路径即可

把相关的路径的复制到他搜索到的地方
江北百晓生 2012-04-24
  • 打赏
  • 举报
回复
怎么合并配置啊,我一起设置环境也不能用啊
xunxun 2012-04-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

直接用G++可以 编译的,clang++还是不行
[/Quote]

你用的是llvm那个包吧

那个仅是编译器,不是完整的工具链,仅供分析使用。

如果要使用clang,要把2个包合并使用。现在llvm推荐使用dragonegg生产。
江北百晓生 2012-04-22
  • 打赏
  • 举报
回复
直接用G++可以 编译的,clang++还是不行
xunxun 2012-04-21
  • 打赏
  • 举报
回复
我这里还无问题

你怎么用的?

下载http://pcxllvm.googlecode.com/files/Dragonegg_MinGW64CRT_gcc4.6.1_win32.7z

把bin目录加入path

然后使用

g++ -fplugin=dragonegg-cc1plus.dll test.cpp
江北百晓生 2012-04-21
  • 打赏
  • 举报
回复

#include <iostream>
using namespace std;
int main()
{
cout<<"Hello world"<<endl;
return 0;
}

就这样的都不过,
xunxun 2012-04-17
  • 打赏
  • 举报
回复
请给出个例子

我这里找不到编译不了的C++代码
江北百晓生 2012-04-17
  • 打赏
  • 举报
回复
我写了批处理,设置了Path,可是还是找不到!C++程序不要头文件的可以编译,模板的就实现了
xunxun 2012-04-17
  • 打赏
  • 举报
回复
请给出例程

我测试了一些c++程序没有任何问题

不知道什么配置,只需要将他加入环境的path即可
江北百晓生 2012-04-17
  • 打赏
  • 举报
回复
怎么配置啊,给出配置方法啊。

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧