小编use*_*587的帖子

有没有详细的Clang库API文档?

我一直在阅读一些大量使用Clang库API的代码.但是,我根本不熟悉Clang API,不得不一直谷歌.例如,当我阅读一些代码时clang::EnumConstantDecl,我会关注谷歌并转到 此页面.似乎所有的东西EnumConstantDecl都可以在这里找到,但我所看到的只是一个API列表(或者只是一些函数原型),没有任何具体的解释.我仍然不知道如何使用它.

那么,还有其他好的文档吗?或者,我缺少任何基本知识吗?

c++ clang

5
推荐指数
1
解决办法
742
查看次数

如何使用clang/LLVM库编译C++代码?

我是Linux的新手,并且正在学习一些clang教程.但是,我发现即使是一个简单的文件也很难编译.所以,这是代码的一部分:

#include <cstdio>
#include <string>
#include <iostream>
#include <sstream>
#include <map>
#include <utility>
#include "clang/AST/ASTConsumer.h"
#include "clang/AST/RecursiveASTVisitor.h"
#include "clang/Basic/Diagnostic.h"
#include "clang/Basic/FileManager.h"
#include "clang/Basic/SourceManager.h"
#include "clang/Basic/TargetOptions.h"
#include "clang/Basic/TargetInfo.h"
#include "clang/Frontend/CompilerInstance.h"
#include "clang/Lex/Preprocessor.h"
#include "clang/Parse/ParseAST.h"
#include "clang/Rewrite/Core/Rewriter.h"
#include "clang/Rewrite/Frontend/Rewriters.h"
#include "llvm/Support/Host.h"
#include "llvm/Support/raw_ostream.h"

using namespace clang;
using namespace std;
Run Code Online (Sandbox Code Playgroud)

当我尝试使用以下命令编译简单代码(比如说PrintFunctions.cpp)时:

clang++ -o PrintFunctions PrintFunctions.cpp
Run Code Online (Sandbox Code Playgroud)

我收到错误:

致命错误:找不到'clang/AST/ASTConsumer.h'文件

好吧,我已经检查过我的LLVM和clang已经安装好了,文件'clang/AST/ASTConsumer.h'是在

/usr/lib/llvm-3.4/include/clang/AST

所以,必须有一些我错过的命令.我不知道该怎么做......我已经在线阅读了一些教程,其中大多数使用了makefile,它们看起来很复杂.那么,如何编译呢?如何找到一种更简单的方法来编写makefile?

顺便说一下,我在Ubuntu 14.04下,而clang/LLVM版本是3.4.

c++ linux makefile llvm clang

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

如何规范化配置单元中的列?

我正在尝试规范化配置单元中的列,这意味着我必须使列中的每个值除以该列中的最大值.例如:我有一张桌子X:

A   B   C   D
1  0.1  3  0.2
2  0.2  4  0.5
3  0.3  5  0.2
Run Code Online (Sandbox Code Playgroud)

我想规范化列C,请求的表Y是:

A   B    C    D
1  0.1  0.6  0.2
2  0.2  0.8  0.5
3  0.3   1   0.2
Run Code Online (Sandbox Code Playgroud)

我不知道如何编写SQL来表示整列的最大值.

sql hive normalize hiveql

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

为什么"malloc"会改变我案例中无关的指针?

我正在尝试在C中实现二进制搜索树(BST).我试图向BST添加几个元素,但是当我添加第三个元素时,代码不起作用.我在gdb中调试它并发现当它malloc为新节点执行时,第二个节点的父节点从正确的地址值更改为0x13.

由于我觉得新节点的内存分配与旧节点的父节点之间没有关系,我不知道为什么会发生这种情况......

这是我的InsertBST功能:

int InsertBST(Bst *p, int val)
{
    PNode pnode = (PNode)malloc(sizeof(PNode));
    if (pnode != NULL)
    {
        pnode->data = val;
        pnode->lc = NULL;
        pnode->rc = NULL;
        if (p->root == NULL)
        {
            pnode->parent = NULL;
            p->root = pnode;
            p->size++;
            return 1;
        }
        else
        {
            PNode tem = FindVal(p->root, val);
            if (tem != NULL)
            {
                printf("Sorry, the value %d has appeared!\n", val);
                return 0;
            }
            else
            {
                tem = p->root;
                while (tem->lc != NULL && …
Run Code Online (Sandbox Code Playgroud)

c malloc pointers binary-search-tree data-structures

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

如何将Spark Dataframe列嵌入到Map列?

我有一个包含许多列的spark数据框。现在,我想将它们组合到一张地图上并建立一个新列。例如

col1:String col2:String col3:String... coln:String =>
col: Map(colname -> colval)
Run Code Online (Sandbox Code Playgroud)

一种方法是:

df.withColumn("newcol", struct(df.columns.head, df.columns.tail: _*))
Run Code Online (Sandbox Code Playgroud)

但是,我仍然必须将df转换为dataset。我不知道如何在这里定义可以匹配struct类型的案例类。

另一种选择是将列嵌入到Map类型,但是我不知道该如何表达。

scala apache-spark spark-dataframe apache-spark-dataset

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