Jos*_*ett 13 c++ boost undefined-reference
我已经看过几个其他帖子来处理这个完全相同的问题.但是,他们的解决方案似乎都不适合我.我编译如下代码:
__CODE__的__CODE__是这样的:
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/io.hpp>
#include <boost/timer/timer.hpp>
using namespace boost::numeric::ublas;
int main(){
matrix<double> mat1 (3,3);
matrix<double> mat2 (3,3);
matrix<double> mat3 (3,3);
unsigned k=0;
for(unsigned i = 0; i < mat1.size1(); ++i){
for(unsigned j = 0; j < mat1.size2(); ++j){
mat1(i,j) = k;
mat2(i,j) = 2*k++;
}
}
k=0;
if(1){
boost::timer::auto_cpu_timer t;
while(k<1000){
mat3 = prod(mat1,mat2);
k++;
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
请注意,__CODE__在仅调用相应__CODE__委托方法的类别中声明.
问题是这根本没有动画并且显示发射器处于其最终位置.我的印象是,一旦将动画添加到图层,您应该将其背后的实际模型更改为其最终位置,以便在动画完成时模型处于最终状态; 即,防止动画"回弹"到其原始位置.
我已经尝试将最后两行放在__CODE__块中,这确实按预期动画.但是,当动画结束时,一些粒子会在发射器的原始位置间歇性地发射.如果您将系统置于负载状态(例如,在播放动画时滚动表格视图),则会更频繁地发生这种情况.
我想到的另一个解决方案是不要移动它,__CODE__只是移动__CODE__自己,虽然我还没有尝试过.
提前感谢您提供的任何帮助.
Ola*_*che 20
您必须添加-lrt到链接库
g++ matrix_test.cpp -o matrix_test -lboost_system -lboost_timer -lboost_chrono -lrt
Run Code Online (Sandbox Code Playgroud)
更新(2016-08-31)
这仍然是一个问题.当你查找时man clock_gettime,这会导致解决方案(-lrt),但它也会说
链接-lrt(仅适用于2.17之前的glibc版本).
因此,当你的glibc更新时,你的问题可能就是其他问题.