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

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

##主要缘由:windows

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

跨平台库,有大量的配置须要调整工具

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

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

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

##从physx库自己来看:接口

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

windows动态库连接静态库,要求两个库有相同的c运行库,mutlthread debugger dll 之类的选项,不一样的依赖,致使没法连接thread

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

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

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

致使c++库修改和编译很是缓慢,效率很低

#c++设计问题

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

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

windows下接口名字会由于 dllexport 而修改

连接依赖关系不明显

大量滥用预编译宏

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

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

非指针类型不能向前引用

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

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

相关文章
相关标签/搜索