physx物理引擎,windows,c++,预编译,vs工具链

c++库的编译和链接使用,确实是巨坑

##主要原因:

c++ 大量依赖预编译选项 和 预编译宏开关

跨平台库,有大量的配置需要调整

c++的外部依赖不明确,没有显式标注

windwos的静态库和动态库 有大量的的dllimport dllexport 之类的定义

头文件同时供库自身和外部使用着同时调用,导致有各种宏的奇技淫巧

##从physx库本身来看:

physx被拆分为多个库,有的编译为静态库,有的为动态库,库之间的依赖关系难于直观看到

windows动态库链接静态库,要求两个库有相同的c运行库,mutlthread debugger dll 之类的选项,不同的依赖,导致无法链接

dllimport dllexport 之类的区分 导致c函数名字变化,链接时才出错

链接出的dll 的外部依赖,需要第三方工具分析

功能裁剪,需要对代码进行分析,找到影响功能的宏

导致c++库修改和编译非常缓慢,效率很低

#c++设计问题

缺少模块概念,头文件和库文件分离

动态库和静态库 概念分离,导致使用不便

windows下接口名字会因为 dllexport 而修改

链接依赖关系不明显

大量滥用预编译宏

头文件行为受到宏影响多变,导致库和库使用者之间不一致

head file 头文件地狱,永远找不到应该include哪个头文件

非指针类型不能向前引用

头文件不仅仅是公开API 还包括大量私有实现细节

二进制内部结构一无所知,对编译出来的 dll无法清晰的知道,其中究竟包含了什么内容

转载于:https://my.oschina.net/u/186074/blog/3016886

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值