安装使用常见的C++开源库

安装使用数值计算库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

猜你喜欢

转载自blog.csdn.net/bleedingfight/article/details/81028651