c++ - 如何防止用户在 C 和 C++ 项目的通用头文件中编写 C++ 代码?
问题描述
我们有两个项目。一个项目是 C++(比如 SourceA),而另一个项目只有 C(比如 SourceB)。两者都有不同的存储库,但它们之间很少有共同的头文件。在编译 SourceB 时,我从 SourceA 复制通用头文件。
由于 AsourceA 是 C++ 代码,我希望用户防止在通用头文件中编写任何 C++ 代码,以便它也可以在 SourceB 中编译。有什么办法吗?我尝试使用extern "c"{}
,但里面的 C++ 代码extern "C"
没有给出错误。
我正在为 SourceA 使用 Eclipse IDE,如果有任何设置 Eclipse,那么它也可以工作。
一般来说,人们如何处理这个问题?
解决方案
通常,如果是多个项目之间共享的库,您可以将它们放在自己的“公司标准”存储库中。然后,每个文件的项目特定版本将是该项目的本地版本,如果有人对文件进行更改并提交到项目特定的 repo,它不会影响任何其他项目。
然后,当需要更新“公司标准”文件时,您可以在他们自己的存储库中更新它们,然后让每个项目根据需要进行更新,通过检查差异来查看是否有任何项目特定的更改需要保留。
也就是说,在与本地项目不同的一个位置检查“公司标准”存储库中所有文件的最新版本。然后使用差异工具更新您的本地项目文件。检查哪些文件不同,如果找到,请检查更改的内容。然后最后提交到特定于项目的 repo。
您还可以通过设置该文件属性来写保护实际文件。那么没有人应该错误地编辑它们,因为 IDE 会给出一些关于它的消息。
推荐阅读
- node.js - Node.js 中的 fsevents 是什么?
- javascript - Chrome 扩展/Javascript - 遍历 URL 数组并为每个获取 DOM
- azure - 当您尝试通过电子邮件触发逻辑应用程序时,如何更改逻辑应用程序的连接
- c++ - 互联网关闭时如何终止Windows套接字?(C++ WinAPI)
- html - 使用问号 (?) 指向 URL 的 HTML 表单
- c++ - C++ UWP 存储访问
- python - 我无法安装 PyInstaller ,正在准备轮元数据...错误
- spring - 如何将本机查询的值映射到数据库表中不存在的实体字段
- c++ - 标准::位集
实现导致大小被偷听 - python - 编写循环以查看列表中的数字是偶数还是奇数(python)