小编bal*_*erc的帖子

将libGdx freetype库添加到Android项目时出错

我正在尝试使用LibGDX附带的libgdx-freetype库.对于台式机,我只是简单地添加libgdx-freetype.jar,并libgdx-natives.jar/libs主项目的文件夹(并添加到构建路径),它只是工作.但是,当尝试将相同的库添加到/libs文件夹和libgdx-freetype.so文件到/libs/armeabi/libs/armeabi-v7a文件夹时,我得到构建错误:

Description Resource    Path    Location    Type
Native libraries detected in 'gdx-freetype-natives.jar'. See console for more information.  
SlotMachine-android     Unknown Android Packaging Problem
Run Code Online (Sandbox Code Playgroud)

在Eclipse控制台中,我有:

[2012-12-05 17:38:04 - SlotMachine-android] The library 'gdx-freetype-natives.jar' contains native libraries that will not run on the device.
[2012-12-05 17:38:04 - SlotMachine-android] The following libraries were found:
[2012-12-05 17:38:04 - SlotMachine-android]  - libgdx-freetype.so
[2012-12-05 17:38:04 - SlotMachine-android]  - libgdx-freetype64.so
Run Code Online (Sandbox Code Playgroud)

有人可以指出我做错了什么吗?

java freetype libgdx

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

软件需求规范(SRS):什么是"系统接口"?

在SRS 的维基百科链接中,在"产品视角"部分中,提到了"系统接口"一词.我不清楚究竟是什么意思.我已经查看了其他一些在线提供的SRS样本,但我无法从示例中拼凑出明确的定义.有人可以详细说明"系统接口"所指的是什么吗?

srs

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

使用随机访问迭代器调用模板函数

作为MOC的一部分,我正在实现merge_sort子例程,为了好奇,我想使用类似于什么的函数签名来实现它std::sort.

我到目前为止的代码如下.

#include <iostream>
#include <vector>

template <typename T>
bool read_number_list(const std::string& filename, std::vector<T>& output_array){
    // ... read number list into an array
    return true;
}

template<typename RandomAccessIterator>
void merge_sort_array (RandomAccessIterator first, RandomAccessIterator last, std::vector<decltype(*first)>& merge_array){
    // ... merge routine
}

template<typename RandomAccessIterator>
void sort_array (RandomAccessIterator first, RandomAccessIterator last){
    std::vector<decltype(*first)> merge_array;
    merge_array.assign(first, last);
    merge_sort_array(first, last, merge_array);
}

int main(){
    std::vector<int> number_array;
    read_number_list<int>("file.txt", number_array);
    sort_array(number_array.begin(), number_array.end());
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我在步骤中看到错误,我在其中复制要排序的数组,以及我调用该merge_sort_array方法的位置.按照模板化代码的惯例,我得到了以下过多的错误(我发现这些错误非常难以理解):

In file included from /usr/include/x86_64-linux-gnu/c++/4.8/bits/c++allocator.h:33:0,
                 from /usr/include/c++/4.8/bits/allocator.h:46, …
Run Code Online (Sandbox Code Playgroud)

c++ c++11

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

Rust:在递归函数中使用可变引用

我正在尝试Vec使用递归函数打印 a 的唯一连续子数组,如下所示:

use std::collections::HashSet;

fn recurse<'a>(nums: &'a [i32], already_printed: &'a mut HashSet<&'a [i32]>) {
    if !already_printed.contains(nums) {
        println!("{:#?}", nums);
    }

    already_printed.insert(nums);

    if nums.len() >= 2 {
        recurse(&nums[0..nums.len() - 1], already_printed);
        recurse(&nums[1..nums.len()], already_printed);
    }
}

pub fn main() {
    let k = vec![1, 2, 3, 4, 5];
    let mut already_printed: HashSet<&[i32]> = HashSet::new();
    recurse(&k[0..], &mut already_printed);
}
Run Code Online (Sandbox Code Playgroud)

当然,正如有经验的 Rustaceans 可能已经猜到的那样,编译失败并出现以下错误:

error[E0499]: cannot borrow `*already_printed` as mutable more than once at a time
  --> src/main.rs:12:39
   |
3  | fn …
Run Code Online (Sandbox Code Playgroud)

recursion rust borrow-checker

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

C++:使用宏比较指针时的编译器错误

我已经定义了一个自定义断言宏.这适用于所有其他比较.但是,我得到编译器错误:

ISO C++ forbids comparison between pointer and integer
Run Code Online (Sandbox Code Playgroud)

当使用下面显示的宏(DWASSERT)来比较指针时,如下面的代码所示.

#define DWASSERT(condition,printstatement)  if(!condition){ printf(printstatement); assert(condition); }

#include <stdio.h>

int main()
{
    int target = 0;
    int* ptr1 = &target;
    int* ptr2 = &target;

    //Normal comparison works fine
    if(ptr1 == ptr2)
        printf("Equal");

    //Comparison using Macro generates compiler
    //error on the next line
    DWASSERT(ptr1 == ptr2, "Pointers not equal!\n");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

虽然我可以简单地避免在这种情况下使用DWASSERT,但我很好奇为什么会生成此编译器错误.

c++ macros assert

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

OpenScenegraph:纹理映射四元组

我正在尝试使用我从图像加载的纹理来创建由createTexturedQuadGeometry生成的四边形几何对象的纹理贴图.然后,我将此drawable添加到节点,将该节点添加到root并呈现层次结构.

下面的代码是我如何做到的.代码编译并运行但我只得到一个空白的黑屏而不是指定的图像.有人可以指出有什么问题吗?

int main(int argc, char** argv) 
{
   osg::ref_ptr<osg::Group> root = new osg::Group;

    osg::ref_ptr<osg::Texture2D> testTexture = new osg::Texture2D;
    osg::ref_ptr<osg::Image> testImage = osgDB::readImageFile("testImage.png");
    assert(testImage.valid());
    int viewWidth = testImage->s();
    int viewHeight = testImage->t();
    testTexture->setImage(testImage);

    osg::ref_ptr<osg::Geometry> pictureQuad = osg::createTexturedQuadGeometry(osg::Vec3(0.0f,0.0f,0.0f),
                                                                              osg::Vec3(viewWidth,0.0f,0.0f),
                                                                              osg::Vec3(0.0f,0.0f,viewHeight),
                                                                              0.0f,
                                                                              viewWidth,
                                                                              viewHeight,
                                                                              1.0f);

    pictureQuad->getOrCreateStateSet()->setTextureAttributeAndModes(0, testTexture.get());
    pictureQuad->getOrCreateStateSet()->setMode(GL_DEPTH_TEST, osg::StateAttribute::ON);
    osg::ref_ptr<osg::Geode> textureHolder = new osg::Geode();
    textureHolder->addDrawable(pictureQuad);
    root->addChild(textureHolder);

    osgViewer::Viewer viewer;
    viewer.setSceneData(root.get());
    viewer.run();
} 
Run Code Online (Sandbox Code Playgroud)

openscenegraph

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

标签 统计

c++ ×2

assert ×1

borrow-checker ×1

c++11 ×1

freetype ×1

java ×1

libgdx ×1

macros ×1

openscenegraph ×1

recursion ×1

rust ×1

srs ×1