小编Geo*_*ger的帖子

包括 llvm,找不到 Value.h

我正在尝试使用 llvm 编译程序,遵循本教程,编写一个玩具编译器,但是当我尝试编译时,我不断收到

'fatal error: 'llvm/Value.h' file not found'
Run Code Online (Sandbox Code Playgroud)

我正在使用 llvm-config --cxxflags,它为编译器提供了目录

-I/usr/local/Cellar/llvm/3.5.0/include
Run Code Online (Sandbox Code Playgroud)

对于包含。Value.h 似乎确实在目录中

/usr/local/Cellar/llvm/3.5.0/include/IR, 
Run Code Online (Sandbox Code Playgroud)

但是,如果我在包含中添加 IR,则会在不同的文件中弹出一个丢失的标头。

如果有帮助,我正在使用的完整 llvm-config 命令是,

llvm-config --libs core jit native --cxxflags --ldflags
Run Code Online (Sandbox Code Playgroud)

它的输出是,

-I/usr/local/Cellar/llvm/3.5.0/include  -D_DEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -O3  -std=c++11 -fvisibility-inlines-hidden -fno-exceptions -fno-rtti -fno-common -Woverloaded-virtual -Wcast-qual
-L/usr/local/Cellar/llvm/3.5.0/lib
-lLLVMX86Disassembler -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMSelectionDAG -lLLVMAsmPrinter -lLLVMX86Desc -lLLVMObject -lLLVMMCParser -lLLVMBitReader -lLLVMX86Info -lLLVMX86AsmPrinter -lLLVMX86Utils -lLLVMJIT -lLLVMExecutionEngine -lLLVMCodeGen -lLLVMScalarOpts -lLLVMInstCombine -lLLVMTransformUtils -lLLVMipa -lLLVMAnalysis -lLLVMTarget -lLLVMMC -lLLVMCore -lLLVMSupport
Run Code Online (Sandbox Code Playgroud)

我正在使用安装了自制软件的 osx 10.9.5 和 llvm 3.5。

任何建议将不胜感激,谢谢。

macos llvm

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

改变嵌套循环内的项目

我正在尝试编写一个程序,以均匀(或尽可能接近)分布关于球体表面的点.我试图通过在单位球体上随机放置N个点,然后运行多个步骤,其中点相互排斥来实现此目的.

问题出在点数组的循环中.下面的代码在每个点上循环,然后在其中循环,再次遍历每个点并计算每个点对之间的排斥力.

for point in points.iter_mut() {
    point.movement = Quaternion::identity();
    for neighbour in &points {
        if neighbour.id == point.id {
            continue;
        }
        let angle = point.pos.angle(&neighbour.pos);
        let axis = point.pos.cross(&neighbour.pos);
        let force = -(1.0/(angle*angle)) * update_amt;
        point.movement = point.movement * Quaternion::angle_axis(angle, axis);
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到错误:

src/main.rs:71:27: 71:33 error: cannot borrow `points` as immutable because it is also borrowed as mutable
src/main.rs:71         for neighbour in &points {
Run Code Online (Sandbox Code Playgroud)

和解释

the mutable borrow prevents subsequent moves, borrows, or modification of `points` until the …
Run Code Online (Sandbox Code Playgroud)

nested-loops rust

6
推荐指数
2
解决办法
1683
查看次数

如何传递迭代器我正在迭代到函数?

我正在遍历一个数组,并且根据当前值,我想将迭代器传递给子函数并让它处理许多值,并在退出子函数时,继续遍历数组.下面是我到目前为止最接近的,但我一直在努力error: use of moved value: 'iter'.

我已经尝试过生活时间,但这对我来说也没有用.我现在花了大半天的时间在这上面,似乎无法随心所欲.任何帮助将不胜感激.谢谢.

enum Thing {
    Three(char, char, char),
    Four(char, char, char, char),
}

fn take_three <'a>(iter: &mut std::slice::Iter<'a, char>) -> Thing {
    let a = iter.next().unwrap();
    let b = iter.next().unwrap();
    let c = iter.next().unwrap();
    Thing::Three(*a,*b,*c)
}

fn take_four <'a>(iter: &mut std::slice::Iter<'a, char>) -> Thing {
    let a = iter.next().unwrap();
    let b = iter.next().unwrap();
    let c = iter.next().unwrap();
    let d = iter.next().unwrap();
    Thing::Four(*a,*b,*c,*d)
}

fn parse_tokens (tokens: &Vec<char>) {
    let mut iter = tokens.iter(); …
Run Code Online (Sandbox Code Playgroud)

iterator rust

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

标签 统计

rust ×2

iterator ×1

llvm ×1

macos ×1

nested-loops ×1