C 引用C++外部
C referencing C++ extern
我有一个使用英特尔编译器的Windows编译中的头文件。 标题如下所示:
#ifdef _MAIN
Loggerp logger;
#else
extern Loggerp logger;
#endif
_MAIN宏在C++文件中定义,并且有一个包含标头的 C 文件。 这将生成一个"...LNK2019:未解析的外部符号..."因为C++编译修饰(破坏("记录器"名称,以便链接器无法将未修饰的 C 名称与修饰的C++名称匹配。
MSVC 文档指出,MS 编译器将同时支持"外部"C"和"外部"C++"。 但是,英特尔编译器将"extern"的引号标记为错误。
有谁知道如何让英特尔编译器标记此引用,以便它可以链接到 C++ 和 C ?
// when compiling C++ code, use the non-mangled C names
#ifdef __cplusplus
# define EXTERN extern "C"
#else
# define EXTERN extern
#endif
EXTERN Loggerp logger;
相关文章:
- 在函数内部的声明中初始化数组,并在外部使用它
- 使外部项目可用于find_package CMake
- C++:Application.cpp中抛出了未解析的外部符号(解决方案在问题的末尾,供未来的读者参考)
- 使用外部SDK工具链文件在VisualStudio上生成项目编译错误
- C++:来自外部文件的Trivia
- 从函数角度看ID到文件路径的内部与外部映射
- C++:将外部库链接到dll库
- spdlog标头仅与外部fmt一起使用.spdlog错误:'内部':不是'fmt'
- 节俭并发:未解决的外部问题
- 如何在c++中从git建立外部库
- 未解析的外部符号_MsiLocateComponentW@12.
- 如何使用对C函数和类对象的外部调用来处理C++头文件
- 具有外部"c"和程序集的未定义函数
- 为什么导入Mixed native/CLR lib.dll的本机C++应用程序没有在Mixed lib.dll中的外部变
- 在C++中使用 gRPC 时未解析的外部符号
- 在类函数中初始化外部作用域变量
- 如果全局变量默认是外部变量,为什么要添加"extern"关键字?
- 调用外部函数,无法指定类型 C++/MVS
- 同时具有"外部"和"内联"说明符的变量
- LibPrivoxy: 未解析的外部符号 __declspec(dllimport) int __stdcall Sta