解决ptlib库ptlib_config.h不存在的问题
时间:2022-06-25
本文章向大家介绍解决ptlib库ptlib_config.h不存在的问题,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
解决ptlib_config.h编译不存在的问题,以及使用ptlib库的编译错误。
以下为编译ptlib2.19输出信息
1>------ 已启动全部重新生成: 项目: PTLib Static, 配置: Debug Win32 ------1>Using default getdate bison file.1>已复制 1 个文件。1>Configuring Build Options1>PTLib Configure 1.26 - opened configure.ac1>Predefine variable "ac_top_build_prefix" as "D:Documentworkspaceptlibsrcptlibmsos../../../Lib/Win32/"1>Could not open ptlib.pc1>Could not open ptlib_cfg.dxy1>Written make/ptlib_config.mak1>Written D:Documentworkspaceptlibsrcptlibmsos../../../Lib/Win32/include/ptlib_config.h1>Configuration completed.1>Updating revision include file....1>Console_2017.vcxproj -> D:Documentworkspaceptlibsrcptlibmsos......libptlibsd.lib2>------ 已启动全部重新生成: 项目: PTLib DLL, 配置: Debug Win32 ------2>Merging symbols ...2>MergeSym version 1.12.1 on Windows 10 by Equivalence2>2>Symbols merged: 1909 added, 0 removed, 16530 total.2>dllmain.cxx2> 正在创建库 D:Documentworkspaceptlibsrcptlibmsos......libptlibd.lib 和对象 D:Documentworkspaceptlibsrcptlibmsos......libptlibd.exp2>PTLib_2017.vcxproj -> D:Documentworkspaceptlibsrcptlibmsos......libptlibd.dll3>------ 已启动全部重新生成: 项目: Hello World DLL, 配置: Debug Win32 ------3>hello.cxx3>helloDLL_2017.vcxproj -> D:Documentworkspaceptlibsampleshello_world....binHello World DLLWin32DebugHello World DLL.exe========== 全部重新生成: 成功 3 个,失败 0 个,跳过 0 个 ==========
使用ptlib库编译程序出错信息
includeptlibatomic.h(150): warning C4804: “-”: 在操作中使用类型“bool”不安全includeptlibatomic.h(155): error C3861: “_InterlockedAdd”: 找不到标识符includeptlibatomic.h(156): error C3861: “_InterlockedAdd”: 找不到标识符includeptlibatomic.h(156): warning C4146: 一元负运算符应用于无符号类型,结果仍为无符号类型includeptlibatomic.h(157): error C3861: “_InterlockedAdd”: 找不到标识符includeptlibatomic.h(158): error C3861: “_InterlockedAdd”: 找不到标识符includeptlibatomic.h(158): warning C4146: 一元负运算符应用于无符号类型,结果仍为无符号类型includeptlibatomic.h(159): error C3861: “_InterlockedAdd64”: 找不到标识符includeptlibatomic.h(159): error C3861: “_InterlockedExchange64”: 找不到标识符includeptlibatomic.h(159): error C3861: “_InterlockedExchangeAdd64”: 找不到标识符includeptlibatomic.h(160): error C3861: “_InterlockedAdd64”: 找不到标识符includeptlibatomic.h(160): error C3861: “_InterlockedExchange64”: 找不到标识符includeptlibatomic.h(160): error C3861: “_InterlockedExchangeAdd64”: 找不到标识符includeptlibatomic.h(160): warning C4146: 一元负运算符应用于无符号类型,结果仍为无符号类型includeptlib/pstring.h(1947): error C2504: “PWCharArray”: 未定义基类includeptlib/pstring.h(1954): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 intincludeptlib/pstring.h(1954): error C2143: 语法错误: 缺少“,”(在“&”的前面)includeptlib/pstring.h(1948): error C2664: “PObject::Comparison PObject::InternalCompareObjectMemoryDirect(const PObject *,const PObject *,int)”: 无法将参数 1 从“const PWideString *”转换为“const PObject *”includeptlib/pstring.h(1948): note: 与指向的类型无关;强制转换要求 reinterpret_cast、C 样式强制转换或函数样式强制转换includeptlib/pstring.h(1954): error C2065: “arr”: 未声明的标识符includeptlib/pstring.h(1954): error C2614: “PWideString”: 非法的成员初始化:“PWCharArray”不是基或成员includeptlib/pstring.h(1955): error C2039: “AsUCS2”: 不是“PString”的成员includeptlib/pstring.h(110): note: 参见“PString”的声明includeptlib/pstring.h(1955): error C2614: “PWideString”: 非法的成员初始化:“PWCharArray”不是基或成员includeptlib/pstring.h(1957): error C2653: “PWCharArray”: 不是类或命名空间名称includeptlib/pstring.h(1958): error C2653: “PWCharArray”: 不是类或命名空间名称includeptlib/pstring.h(1958): error C2039: “AsUCS2”: 不是“PString”的成员includeptlib/pstring.h(110): note: 参见“PString”的声明includeptlib/pstring.h(1961): error C2440: “<function-style-cast>”: 无法从“const PWideString”转换为“PString”includeptlib/pstring.h(1961): note: 无构造函数可以接受源类型,或构造函数重载决策不明确includeptlib/pstring.h(1963): error C3861: “GetSize”: 找不到标识符includeptlib/pstring.h(1966): error C2614: “PWideString”: 非法的成员初始化:“PWCharArray”不是基或成员includeptlib/pstring.h(2156): error C2039: “AsUCS2”: 不是“PConstantString<PString>”的成员includeptlib/pstring.h(2148): note: 参见“PConstantString<PString>”的声明includeptlib/pstring.h(2156): error C2614: “PWideString”: 非法的成员初始化:“PWCharArray”不是基或成员includeptlib/pstring.h(2157): error C2653: “PWCharArray”: 不是类或命名空间名称includeptlib/pstring.h(2157): error C2039: “AsUCS2”: 不是“PConstantString<PString>”的成员includeptlib/pstring.h(2148): note: 参见“PConstantString<PString>”的声明includeptlib/pstring.h(2158): error C2653: “PWCharArray”: 不是类或命名空间名称includeptlib/pstring.h(2158): error C2039: “AsUCS2”: 不是“PConstantString<PString>”的成员includeptlib/pstring.h(2148): note: 参见“PConstantString<PString>”的声明
解决问题
- 编译ptlib会根据系统编译器产生新的ptlib_config.h文件;
Written D:Documentworkspaceptlibsrcptlibmsos../../../Lib/Win32/include/ptlib_config.h
- 一般路径为:
ptliblibWin32includeptlib_config.h
- 需要注意的是不可直接修改
ptlib_config.h.in
文件,不然会可能导致以上的编译出错信息。
ptlibincludeptlib_config.h.in
- Spring Cloud中如何保证各个微服务之间调用的安全性
- Spring Boot Actuator监控页面报错解决
- Spring Cloud中如何优雅的使用Feign调用接口
- Spring Cloud Eureka 集群高可用
- Spring Cloud Eureka 增加权限认证
- Spring Cloud Eureka 初探
- 房价网是怎么使用分布式作业框架elastic-job
- Spring Cloud Sleuth Zipkin 展示追踪数据
- Spring cloud Zuul Filter 使用小经验
- Spring Cloud Eureka REST 接口
- Spring Cloud Eureka 控制台快速查看Swagger API文档
- Spring Cloud Feign 启动UnsatisfiedDependencyException
- Spring Cloud Zuul结合Smconf配置中心动态进行IP黑名单限制
- 高性能NIO框架Netty入门篇
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法