安装使用数值计算库eigen
unzip Downloads/eigen-eigen-153789649718.zip -d eigen
cd eigen/eigen-eigen-153789649718
mkdir build
cmake ..
make -j2
sudo make install
使用eigen库
#include <iostream>
#include "eigen3/Eigen/Dense"
using namespace std;
using Eigen::MatrixXd;
int main()
{
MatrixXd m(2,2);
m(0,0) = 3;
m(1,0) = 2.5;
m(0,1) = -1;
m(1,1) = m(1,0)+m(0,1);
cout<<m<<endl;
return 0;
}
内存测试vargrind
wget ftp://sourceware.org/pub/valgrind/valgrind-3.13.0.tar.bz2
tar xjvf valgrind-3.13.0.tar.bz2
cd valgrind-3.13.0
./configure
make -j2
sudo make install
测试代码:
#include<iostream>
using namespace std;
int main()
{
int *a = new int[10];
for(int i=0;i<10;i++)
{
cout<<a[i]<<" ";
}
delete [] a;
}
编译测试:
clang++ -g -o t
valgrind --leak-check=yes ./t
输出如下:
==21901== Memcheck, a memory error detector
==21901== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==21901== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==21901== Command: ./t
==21901==
==21901== Conditional jump or move depends on uninitialised value(s)
==21901== at 0x4F39A2B: std::ostreambuf_iterator<char, std::char_traits<char> > std::num_put<char, std::ostreambuf_iterator<ch
ar, std::char_traits<char> > >::_M_insert_int<long>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char
, long) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22)
==21901== by 0x4F39C4C: std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_i
terator<char, std::char_traits<char> >, std::ios_base&, char, long) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22)
==21901== by 0x4F45CE9: std::ostream& std::ostream::_M_insert<long>(long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22)
==21901== by 0x400849: main (test.cc:8)
==21901==
==21901== Use of uninitialised value of size 8
安装boost
wget https://dl.bintray.com/boostorg/release/1.67.0/source/boost_1_67_0.tar.bz2
tar xjvf boost_1_67_0.tar.bz2
cd boost_1_67_0
./bootstrap.sh --with-libraries=all --with-toolset=gcc
./b2 toolset=gcc
sudo ./b2 install