小编Jim*_*Jim的帖子

ARM编译错误,VFP注册由可执行文件使用,而不是目标文件

我最近几天一直遇到这个问题而且我无法理解这里真正发生的事情,或者问题是什么.

我有一个带有这些标志的makefile:

CC = arm-linux-gnueabihf-gcc-4.6
FLAGS = -O3 -march=armv7-a -mtune=cortex-a9 -mfpu=neon -ftree-vectorize -mfloat-abi=softfp -std=gnu99
Run Code Online (Sandbox Code Playgroud)

我在.a文件中有一个库,它有一些目标文件,我需要做的就是用可执行文件链接它们.我知道原型和所有这些,唯一抱怨的是以下内容:

/usr/bin/ld: error: *EXECUTABLE* uses VFP register arguments, *OBJECTFILE* does not
/usr/bin/ld: failed to merge target specific data of file *OBJECTFILE*
Run Code Online (Sandbox Code Playgroud)

当我不使用-mfloat-abi = softfp时,我得到另一个与浮点寄存器有关的错误.

有没有人知道造成这种情况的原因,以及我可以做些什么来解决这个问题,例如让我的可执行文件不使用虚拟浮点寄存器参数?

x@x:~/Desktop/perf_test$ make
arm-linux-gnueabihf-gcc-4.6 -c -O3 -march=armv7-a -mtune=cortex-a9 -mfpu=neon -ftree-vectorize -std=gnu99 -mfloat-abi=softfp  perf_test.c ../baseline/util.c
arm-linux-gnueabihf-gcc-4.6 -o perf_test perf_test.o util.o  ../baseline/lib.a
/usr/bin/ld: error: perf_test uses VFP register arguments, perf_test.o does not
/usr/bin/ld: failed to merge target specific data of file perf_test.o
/usr/bin/ld: error: …
Run Code Online (Sandbox Code Playgroud)

gcc arm compilation

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

使用C++ Boost的图库

我对如何使用boost库实际创建Graph感到困惑,我查看了示例代码,并且没有任何注释解释它的作用.

如何制作图形,并随时添加顶点和边缘?

c++ boost

50
推荐指数
4
解决办法
4万
查看次数

C++中是否有任何Sorted Collections?

在Smalltalk中,您可以创建一个sortedCollection,也就是说您可以添加一个元素,然后将其插入到正确的位置.

在C++中有这样的东西吗?或者甚至更好的是有类似sortedQueue的东西,这样当你添加一个元素时,它会将它排序成一个类似于结构的队列,你可以直接弹出第一个元素?

我查看了set,​​这是我在排序方面所需要的,但它是一个无序的集合.我正在寻找一个小的运行时间.

c++ sorting boost stl adt

19
推荐指数
4
解决办法
4万
查看次数

如何创建元组C++列表

我对c ++很新,我真的没有任何背景知识.我想要创建一个元组列表,第一个将是一个int,第二个将是一个字符串.

  #include <string>
  #include <list>
  #include <boost/tuple/tuple.hpp>
  ....
  list< tuple<int,string> > time;
Run Code Online (Sandbox Code Playgroud)

并得到一个错误.我希望能够创建一个列表,添加我可以按int排序的条目,并具有描述int的字符串.

我该如何创建此列表?

c++ boost tuples list

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

如何删除matplotlib图底部的空白?

我查看了matplotlib用户指南,似乎无法找到一种方法来删除在我的图形底部生成的空白区域.

fig = plt.figure(1,figsize=(5,10))
axis = fig.add_subplot(211, autoscale_on=False,xlim=(1,10),ylim=(0,1))
Run Code Online (Sandbox Code Playgroud)

我在图表上使用的配置.我尝试使用frameon = False,但没注意到它做了什么.我想图表占据输出图像的整个大小.

这是照片: 请注意,图表的一半是底部的半白色空间.

我想删除所有这些空白区域.提供的答案都没有这样做......我错过了别的什么吗?

python matplotlib

7
推荐指数
2
解决办法
6305
查看次数

如何在阅读前对目录中的文件进行排序?

我正在使用一个程序,根据从目录中读取文件的顺序将输出写入csv文件.但是带有大量文件的结尾为1,2,3,4,5,6,7,8,9,10,11,12.我的程序实际上按照字母顺序读取文件:1,10,11,12 ....,2,20,21 ..... 99.问题是另一个程序假定排序是数字排序,并使图结果偏斜.

实际文件看起来像:String.ext.ext2.1.txt, String.ext.ext2.2.txt等等......

我怎么能用python脚本做到这一点?

python sorting file-io

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

纹理映射C++ OpenGL

我已经读过这个,包括Nehe和这里的解决方案,但我找不到具体的答案.

我正在尝试加载一张名为stars.jpg的照片.我想把它作为场景的背景,通过使用紫外坐标映射它,做到这一点

glBegin(GL_QUADS);
glTexCoord2f(0,0);
glVertex2f(0,0);
Run Code Online (Sandbox Code Playgroud)

但是我对如何加载实际纹理非常困惑,所有的调用

glActiveTexture();
glEnable(GL_TEXTURE_2d);
glBindTexture(GL_TEXTURE);
Run Code Online (Sandbox Code Playgroud)

他们所做的只是让我感到困惑,所有这些是什么意思/做什么,以及我想以什么顺序把它们放进去,以便让stars.jpg成为我的背景?

c++ opengl texture-mapping

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

BGL添加具有多个属性的边

我希望所有的边缘都具有属性,重量和容量.我发现BGL已经定义了这两个.所以我为Graph定义了Edge和Vertex属性

 typedef property<vertex_name_t, string> VertexProperty;
 typedef property<edge_weight_t, int, property<edge_capacity_t, int> > EdgeProperty;
 typedef adjacency_list<listS,vecS, undirectedS, VertexProperty, EdgeProperty > Graph;
Run Code Online (Sandbox Code Playgroud)

这是我尝试将边添加到图中的位置:

172: EdgeProperty prop = (weight, capacity);
173: add_edge(vertex1,vertex2, prop, g);
Run Code Online (Sandbox Code Playgroud)

如果我只有一个属性,我知道它将是prop = 5; 但是,有两个我对格式化感到困惑.

这是我收到的错误:

graph.cc: In function ‘void con_graph()’:
graph.cc:172: warning: left-hand operand of comma has no effect
Run Code Online (Sandbox Code Playgroud)

c++ boost boost-graph

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

如何在graphviz中打印图形,并显示多个属性

我的问题基于:如何打印显示单个属性的图形

我正在使用捆绑属性:

 typedef struct vert{
   std::string name;
 };

 typedef struct edge{
   int capacity;
   int weight;
 }; 

typedef adjacency_list<listS, vecS, undirectedS, vert, edge> Graph;
Graph g;
vector<int,int> ele;
Run Code Online (Sandbox Code Playgroud)

我在一个应该创建边的循环中调用以下内容:

  edge prop;
  prop.weight = 5;
  prop.capacity = 4;
  add_edge(ele.first,ele.second, prop, g);
Run Code Online (Sandbox Code Playgroud)

此段是将图形打印为点格式的内容.

ofstream dot("graph.dot");
write_graphviz(dot, g, 
  boost::make_label_writer(boost::get(&vert::name, g)),
  boost::make_label_writer(boost::get(&edge::weight, g)),
  boost::make_label_writer(boost::get(&edge::capacity, g)));
Run Code Online (Sandbox Code Playgroud)

错误是:

/usr/include/boost/graph/graphviz.hpp: In function ‘void boost::write_graphviz(std::ostream&, const Graph&, VertexPropertiesWriter, EdgePropertiesWriter, GraphPropertiesWriter, VertexID) [with Graph = boost::adjacency_list<boost::listS, boost::vecS, boost::undirectedS, vert, edge, boost::no_property, boost::listS>, VertexPropertiesWriter = boost::label_writer<boost::bundle_property_map<boost::adjacency_list<boost::listS, boost::vecS, boost::undirectedS, …
Run Code Online (Sandbox Code Playgroud)

c++ boost graphviz boost-graph

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

GMP mpf_pow_ui 函数

我正在使用 gmp 的 mpf_t 来尝试获得非常高的精度。

我的精度范围从负数万亿到正数万亿,以及这些数字的 1。但是 mpf 不支持允许负指数的幂函数,如果我想将值提高到 10^-30,有没有办法解决这个问题?

http://gmplib.org/manual/Float-Arithmetic.html#Float-Arithmetic

当我尝试使用 mpf_pow_ui 时,当我的 exp 为负数时,我的 gdp 输出:

(gdb) p exp_multiplier
$9 = {{_mp_prec = 2, _mp_size = 3, _mp_exp = 957480584338323631, _mp_d = 0x605070}}
Run Code Online (Sandbox Code Playgroud)

这最终会导致段错误。

c precision gmp

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