SO中文参考
首页
(current)
程序语言
c
java
python
c++
go
javascript
swift
c#
操作系统
linux
ubuntu
centos
unix
数据库
oracle
mysql
mongodb
postgresql
框架
node.js
angular
react-native
avalon
django
twisted
hadoop
.net
移动开发
android
ios
搜索
C++ 链接器可以在没有函数原型的情况下从函数调用中推导出符号吗
问题描述
投票:0
回答:1
如果我有一个带有某些类和函数实现的静态库,是否可以在没有声明静态库中实现的函数和类的头文件的情况下链接到它?链接器是否只能从函数调用中推导出符号? 问题是静态库中的类从仅标头库调用函数(实现位于头文件中),因此如果我在使用静态库的代码中包含我的仅标头库,我最终会得到两个实现这些功能。
非常感谢
我尝试将静态库添加到链接器输入(Visual Studio)并简单地调用函数,但它不喜欢那样。 当我包含头文件时,我得到“已经定义在”错误
c++
linker
static-libraries
1个回答
0
投票
无需原型即可调用函数,这是 C 的一项功能。 C++ 链接器无法做到这一点,因为符号名称取决于参数类型和实体位置(命名空间、类成员等)。主要原因是 C++ 中允许
参数多态性
,即函数重载。
如果仅标头库使用静态库实体的外部依赖项,则必须为其提供带有原型的标头,或将实现隐藏在桥接模式后面。在任何一种情况下,它都不再是纯粹的标题。
最新问题
我需要帮助在 pandas Dataframe 上搜索值列表,然后分隔找到值的行
私有注册表上的代理后面的 docker 登录导致 TLS 握手超时
对话框中的 WINAPI Esc 键处理
URL 更改但页面不变
Docker 无法在代理 TLS 握手超时后拉取镜像
尝试对 MERN 应用程序进行 dockerize 时出现代理错误
mac postgress - 库未加载:/usr/local/lib/libpq.5.dylib
ASP.NET-4 IIS7.5 web.config serverRuntime 元素
在 flutter 中强制重建有状态子部件
Java中Stream(java.util.stream)和LinkedList数据结构有什么关系?
C# 控制台应用程序,侧面有一个表单显示实时数据
在 C# 的 JSON 反序列化中有效解除嵌套属性
如何在Python中显示我的dask数组中的所有数据?
不使用标准库但使用 _start 标签(入口点)进行编译
为什么 Google 地图不允许以角度显示动态经纬度?
如何计算库存中每件商品的平均价格 php mysql
'setMapStyle' 已弃用,不应使用。使用 GoogleMap.style 代替
请求模块中的python错误
有条件地取消()通量并保留导致取消的值
Slim PHP:从非公共目录下载文件
© www.soinside.com 2019 - 2024. All rights reserved.