Linux上编译OOCT

下载OCCT源码

从github下载OCCT 7.8.1:https://github.com/Open-Cascade-SAS/OCCT/tree/bd2a789f15235755ce4d1a3b07379a2e062fdc2e

点击【Code】下载zip文件。

解压并拷贝到Linux上。

Linux上编译

准备

确保安装了cmake、gcc、g++。

安装命令:

bash 复制代码
sudo apt install cmake
sudo apt install gcc
sudo apt install g++

编译

在源码文件夹创建一个build文件夹,在build文件夹内打开终端,运行命令:

bash 复制代码
cmake -DBUILD_MODULE_Draw=OFF -DBUILD_MODULE_Visualization=OFF -DBUILD_MODULE_ApplicationFramework=OFF -DBUILD_MODULE_DataExchange=OFF ..

只编译OCCT核心部分,不含第三方库的编译(如可视化模块、freetype、tk模块等)。

然后运行:

bash 复制代码
sudo make install

编译时会显示编译进度(等待十几分钟不等):

编译的库位于build/lin64/gcc/lib:

头文件位于:

项目示例

使用CLion创建一个C++项目:

将occt的库文件和头文件拷贝到项目的occt文件夹下:

修改CMakeLists.txt文件引入occt:

bash 复制代码
cmake_minimum_required(VERSION 4.2)
project(TestOcct)

set(CMAKE_CXX_STANDARD 11)

#occt头文件
include_directories(SYSTEM ${CMAKE_CURRENT_SOURCE_DIR}/occt/include)
#occt库文件
link_directories(SYSTEM ${CMAKE_CURRENT_SOURCE_DIR}/occt/libs)
#收集occt所有 .so 文件的完整路径
file(GLOB OCCT_LIBS "${CMAKE_CURRENT_SOURCE_DIR}/occt/libs/*.so")

add_executable(TestOcct main.cpp)

# 链接occt库
target_link_libraries(TestOcct ${OCCT_LIBS})

修改main.cpp来测试occt:

cpp 复制代码
#include <iostream>
#include <BRepPrimAPI_MakeBox.hxx>
#include <TopoDS_Shape.hxx>
#include <Standard_Version.hxx>   // OCCT 自带

int main() {
    std::cout << "Hello, World!" << std::endl;

    // 创建一个10x10x10的立方体
    TopoDS_Shape box = BRepPrimAPI_MakeBox(10.0, 10.0, 10.0).Shape();

    if (box.IsNull())
    {
        std::cerr << "Failed to create box shape." << std::endl;
        return 1;
    }

    std::cout << "Box created successfully." << std::endl;

    // 数值版本(各宏定义在 Standard_Version.hxx)
    std::cout << "OCCT Version: "
        << OCC_VERSION_MAJOR << "."
        << OCC_VERSION_MINOR << "."
        << OCC_VERSION_MAINTENANCE
        << std::endl;
    return 0;
}

运行结果示意: