Opencascad 7.0编译问题

配置编译环境

以前的版本要么是手动配置custom.bat,要么是使用CMake配置。
7.0版本,最快最方便的方法是使用自带的genproj工具,这个工具有智能的UI界面,只需要选择你下载的第三方库目录,会帮你生成custom.bat.
不过这个工具会调用tcl/tk中的tclsh.exe
(注意:这个文件跟tclsh86.exe一样,就是换了个名字复制了一份)。
因此前提是要先安装tcl/tk.
具体的genproj使用方法很简单,详见官方文档:
https://www.opencascade.com/doc/occt-7.0.0/overview/html/occt_dev_guides__building_msvc.html

编译源码

按照上文的方法生成msvc工程后,仍然有可能无法编译通过。最可能的问题就是其生成的msvn宏无法正确识别。
CSF_OPT_INC这个宏,正确的应该是被替换为OCC以及第三方库的所有include目录。
如果路径不对,在msvn的工程配置中,手动将其替换成custom.bat里面的路径即可。
如图所示,我这里是这样的:
头文件目录
链接的时候如果找不到lib,也是类似的原因。

应用程序配置

编译通过后,你的项目会发生运行期间闪退的现象。
这是个版本升级的大坑。参见文档:
https://www.opencascade.com/doc/occt-7.0.0/overview/html/occt_dev_guides__upgrade.html
从6.9.0开始,OCC使用GLSL作为默认的渲染方式。因此你需要手动配置CSF_ShadersDirectory,也就是shader目录。
这个目录在scr/shaders。因此你应该把这个目录拷贝到自己的应用程序可执行文件所在的目录下,并且在你的程序初始化的时候加入如下代码:

int stat = putenv("CSF_ShadersDirectory=Shaders");
if (stat)
    printf("环境变量定义失败"); 

资源推荐

1、eryar大神的opencascad博客目录:
http://www.cppblog.com/eryar/archive/2014/11/16/208897.html
2、老版本(6.7)源码的手动编译方式:
http://www.zyh1690.org/opencascade-development-environment-set-up/

### 如何在Android平台上编译FFmpeg 7.0 #### 准备工作 为了成功编译FFmpeg 7.0,在开始之前需确认已安装好必要的工具链。这包括但不限于配置好的NDK环境,这是构建原生代码所必需的基础设施[^3]。 #### 下载源码 获取FFmpeg最新版的源代码是第一步操作。可以通过官方Git仓库克隆项目来获得最稳定的发布版本: ```bash git clone https://github.com/FFmpeg/FFmpeg.git ffmpeg-7.0 cd ffmpeg-7.0 ``` #### 设置交叉编译环境变量 由于目标平台为Android,因此需要设置特定于该平台的编译参数。对于较新的NDK版本(如r19及以上),需要注意GCC已被弃用并替换为Clang作为默认C/C++编译器[^4]。故而应调整相应的路径指向正确的工具链位置。 #### 编写Configure脚本选项 针对Android设备的特点定制化configure命令行参数非常重要。例如指定ABI架构(armeabi-v7a, arm64-v8a等),API级别以及输出静态库还是共享库形式等内容均在此阶段完成定义。一个典型的例子如下所示: ```bash ./configure \ --prefix=$PREFIX \ --enable-cross-compile \ --target-os=android \ --arch=aarch64 \ --cpu=armv8-a \ --sysroot=$ANDROID_NDK/sysroot \ --cross-prefix=$ANDROID_NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android21- \ --extra-cflags="-Os -fpic $ADDI_CFLAGS" \ --disable-shared \ --enable-static \ --pkg-config=pkgconf ``` 上述指令中的`$PREFIX`, `$ANDROID_NDK`和其他宏应当根据实际情况替换成具体的绝对路径值;同时可根据需求增减特性开关(`--enable-* / --disable-*`)来自定义最终产物的功能集。 #### 执行Makefile生成过程 当所有的前期准备工作完成后就可以运行make来进行实际的编译流程了。考虑到效率问题建议加上-jN(N代表CPU核心数加一)加速多线程处理速度: ```bash make -j$(nproc) make install ``` 这样就完成了整个编译环节的工作,接下来便可以直接将得到的结果集成到自己的应用程序当中去了[^2]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值