c和c++头文件的一些问题
some problems with c and c++ header file
我在c++类函数中使用c函数时遇到了一个令人困惑的问题。
我有一个名为A
的类,它在A.h
中定义并在A.cpp
中实现。还有B.h
和B.c
,它们声明并实现了一些功能。
在A
函数中,我调用了在B.h
和B.c
中定义的函数(没有类B
),我认为这是一个常见的东西,但我得到了编译器错误,它说Unresolved reference
或其他指向B
函数的东西。
我在A.cpp
的开头有#include "B.h"
,我的编译器是Linux下的GCC(opensuse 12.3),很抱歉由于版权原因,我不能向您展示代码。
这让我很困惑,我不是C++专业人士,但我知道C++头文件和源文件协同工作的方式,所以如果有人对此有类似的经验,我只是想寻求帮助。
感谢
您想要:
extern "C" {
#include "B.h";
}
您需要编译B.c并包含其函数
gcc -Wall A.cpp B.c -o my_prog
如果你这样做,请确保在B.h中添加以下保护,以避免C函数的名称被篡改
#ifdef __cplusplus
extern "C" {
#endif
/* declare your C functions here */
#ifdef __cplusplus
}
#endif
创建一个单独的标头-->S.h,在其中包含a.c和B.c的函数()。并将其包含在您想要的任何位置。
或
对于C标准C头(stdio、stdlib、assert…)的列表,请在C前面加上前缀并删除.h。例如,stdio.h变为cstdio。
For other headers, use
extern "C"
{
#include "other_header.h"
}
相关文章:
- 使用mongocxx驱动程序时包含头文件问题
- 在WSL:configure_file上对config_file的每次调用都失败:配置文件时出现问题
- 编译要在英特尔Hyperscan中使用的.cc文件时出现问题
- 使用 seekg() 读取C++中的文件时出现问题
- sqlite3 和生成文件中的链接出现问题
- C++头文件和类实现出现问题
- 用户输入字符串的文件附加问题..C++
- node-gyp 的先有鸡还是先有蛋的问题:指向依赖项中的头文件
- 读取文件并将其存储在unordered_map中时出现问题
- 编译 llvm 插件时出现问题:llvm/Config/llvm-config.h:没有这样的文件或目录
- 我在使用C++文件时遇到了一些问题
- 在Linux上使用Clang / OLLVM交叉编译helloworld Windows可执行文件时的问题
- 将文件复制到自定义位置,存在字符串转换问题
- DirectX12 的问题:"d3dApp.h":没有这样的文件或目录
- (ODR 使用问题)在不同文件中priority_queue名称相同的结构
- C++模板编程设计问题 - 根据输入文件返回不同的类型
- 读取制表符分隔的文件时出现问题 C++
- 当我在 CLion 中读取数组中的 txt 文件时C++编码问题
- 使用 RapidXML 解析大型 XML(大小大于 65 KB)文件时出现问题
- C++:读取.BMP文件时出现问题;文件结束时间早于预期