gpt4 book ai didi

c++ - 解析/调试/移植带有大量宏的 C++ 程序

转载 作者:太空狗 更新时间:2023-10-29 23:08:59 25 4
gpt4 key购买 nike

我很好奇是否有人可以帮助找到完成任务的好工具。我有一个大型的 C/C++ 程序需要从 Win32 移植到 Linux。由于“包装”(即对操作系统最敏感的)部分已成功从程序内部隔离开来,因此该任务仅涉及通过其“内部”。有些东西可以工作,有些会导致编译时出现小问题,但有一个非常不方便的部分——宏的使用。

基本上大部分内部结构是这样的:

START_MAIN( ... )
SOME_MACRO( ... )
ANOTHER_MACRO( ... )
WRITE_SOMETHING()
END_MAIN()

这使得 C/C++ 看起来像 Pascal,但在试图找出“哪里出了问题”时也会带来很多可怕的痛苦。

是否有任何工具可以帮助解析此类来源以找到问题的根源?

我正在慢慢地(手动)接近这个程序的“可编译性”,但是任何可以帮助我看清这个(人为结构的)困惑的东西都将真正感激。

最佳答案

如果您需要手动调整编译、输出和内容(即寻找可自定义的 C++ 解析器),clang是一个很好的入门工具。

如果您只想查看预处理后的代码(扩展了宏),您可以使用编译器标志:
MSVC:将/P 添加到 C++ 编译器标志(项目 -> 属性 -> C/C++ -> 命令行)
GCC、Clang:添加 -E 编译器标志

This question about preprocessing C++ code包含一些您可能会觉得有用的答案。

关于c++ - 解析/调试/移植带有大量宏的 C++ 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7168799/

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