Gismo库的安装与配置(Linux篇)

既然要在Linux下安装Gismo库,首先要做的肯定是安装Linux系统,无论双系统还是使用虚拟机都是可以考虑的方案,这里我以在VMware虚拟机中安装的Ubuntu-24.04.1为例进行介绍。

系统的安装就不做演示了,网上有很多教程可以参考。

一、环境需求

  1. g++, libstdc++, libstdc++-dev, make
    在终端中执行以下命令安装
    sudo apt-get install build-essential
    
  2. cmake
    sudo apt-get install cmake
    
  3. git
    sudo apt-get install git
    

安装过程需要确认的输入y回车即可

二、源代码获取

首先进入一个指定目录,将gismo拉取过来(这里我我们在/home目录下进行整个过程)

cd /home
git clone https://github.com/gismo/gismo.git

如果拉取不成功请检查你的网络,也可以通过下载源码压缩包并解压的方式获取

三、Gismo库的构建与安装

1. 创建文件夹gismo-build

mkdir gismo-build

2. 项目生成

cmake -S gismo -B gismo-build -DGISMO_BUILD_EXAMPLES=OFF

tip: 可以通过执行cmake gismo-build -LH查看cmake选项的值

3. 项目构建

cmake --build gismo-build

4. 库的安装

sudo cmake --install gismo-build

如此一来,gismo库就已经安装成功了。

四、如何将Gismo库配置到项目中

1. 直接在g++中使用

首先创建源文件main.cpp并将测试代码写入

#include <gismo.h>

using namespace gismo;

int main(int, char**)
{
    gsInfo.precision(3);
    gsKnotVector<>   kv(-1, 0, 3, 3, 1);
    gsBSplineBasis<> bsp(kv);
    gsInfo << bsp.detail() << "\n";
    bsp.uniformRefine();
    gsInfo << bsp.detail() << "\n";
    return 0;
}

执行命令

g++ main.cpp -I/usr/local/include/gismo -lgismo -o gismoTest

将在同级目录下生成一个名为gismoTest的可执行文件,执行程序

./gismoTest

便可看到程序成功运行并输出结果。

2. 用CMake配置使用gismo的项目

此方法与Windows下基本相同,亦可参照前文中所述(https://vergiss.cn/archives/dcSfS7I8
首先创建一个文件夹,进入到文件夹中分别创建两个文件CMakeLists.txtmain.cpp,内容如下:
CMakeLists.txt:

cmake_minimum_required(VERSION 3.20.0)
project(gismoTest) #项目名

set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) #设置可执行程序输出路径

find_package(gismo REQUIRED) #搜索gismo库
if(gismo_FOUND)
    message(STATUS "gismo found: ${gismo_DIR}")
    include_directories(${GISMO_INCLUDE_DIRS}) #设置附加包含目录
    link_directories(${GISMO_LIBRARY_DIR}) #设置附加库目录
endif()

add_executable(gismoTest main.cpp)
target_link_libraries(gismoTest PUBLIC gismo) #将目标链接到gismo动态库,如果链接静态库则将gismo修改为gismo_static

main.cpp:

#include <gismo.h>

using namespace gismo;

int main(int, char**)
{
    gsInfo.precision(3);
    gsKnotVector<>   kv(-1, 0, 3, 3, 1);
    gsBSplineBasis<> bsp(kv);
    gsInfo << bsp.detail() << "\n";
    bsp.uniformRefine();
    gsInfo << bsp.detail() << "\n";
    return 0;
}

依次执行以下命令生成并构建项目

cmake -B build
cmake --build build

此时在/bin目录下便生成了可执行文件gismoTest
进入其中执行程序

cd bin
./gismoTest

便可看到程序成功运行并输出预期结果。