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

本文介绍了数值计算库Eigen的安装及使用方法,并演示了如何通过CMake进行配置。此外,还介绍了符号计算库CLN与GiNaC的安装过程,以及内存测试工具Valgrind的安装与使用方法。最后,提供了Boost库的安装步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

cmake_minimum_required(VERSION 3.10)
project(ex2)

set(CMAKE_CXX_STANDARD 11)
include_directories("/usr/local/include/eigen3")
add_executable(ex2 main.cpp)

安装符号计算库

wget https://www.ginac.de/CLN/cln-1.3.4.tar.bz2
tar xjvf CLN/cln-1.3.4.tar.bz2
cd cln-1.3.4
./configure 
nake -j2
sudo make install 
wget https://ginac.de/ginac-1.7.4.tar.bz2
tar xjvf ginac-1.7.4.tar.bz2
cd ginac-1.7.4
make -j2
sudo make install

内存测试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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值