gpt4 book ai didi

c++ - 为什么要防止 Name-mangling C 文件

转载 作者:太空宇宙 更新时间:2023-11-04 06:12:02 24 4
gpt4 key购买 nike

注意:据我所知,我的问题不是要解决特定问题。

我正在研究在 CPP 项目中使用 C 库来防止编译器名称混淆:

#ifdef __cplusplus
extern "C" {
#endif

1- 但我也读到 C++ 编译器不会破坏 .c 文件。那何必呢?

2- 如果您有超过 500 个 c 文件的库。 (头文件 + c 文件)。您如何将这个 Extern "C"自动添加到其中?是否有一种工具可以自动执行此过程?

最佳答案

  1. c++ 编译器可能不会对 .c 文件进行名称修改,但它肯定会修改 .cpp 文件中包含的名称,因此在需要的头文件
  2. 您可以简单地使用 extern "C"{ file content here },这可以在许多工具中轻松完成。

我给你写一个cmd脚本(.bat)

警告:这会覆盖现有文件,请备份!

@ECHO OFF
for /R %%f in (*.c,*.h) do (
@echo extern "C" { > temp
@echo. >> temp
@type %%f >> temp
@echo. >> temp
@echo } >> temp
@type temp > %%f
@echo processed %%f
)

关于c++ - 为什么要防止 Name-mangling C 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54193464/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com