【问题标题】:Viewing CPython Code in CLion在 CLion 中查看 CPython 代码
【发布时间】:2016-09-28 15:28:29
【问题描述】:

对于一个对更有经验的开发人员来说可能看起来很愚蠢的问题,我深表歉意:我还是 C 和 C++ 的新手。

我来自 Python/Java 开发领域,正在努力更好地了解 C 和 C++。我安装了 JetBrains CLion 并克隆了 CPython mercurial 存储库。然而,当我开始查看源代码时,我意识到 Clion 突出显示了许多似乎有效的结构。例如:

或者

据我所知,Clion 似乎对 Python、C 代码的识别风格有问题,但我可能又错了。

如何更改 Clion 配置以正确解析 CPython 代码?

【问题讨论】:

    标签: c cpython clion


    【解决方案1】:

    CPython 使用 GNU Autotools 进行构建,但 CLion 不支持该工具集。请参阅问题 CPP-494CPP-193。 CLion 目前仅支持一种构建系统 - CMake。

    您可以创建自己的CMakeLists.txt 文件并在其中列出来源。这将帮助 CLion 理解源代码树的结构并允许它找到标题等:

    cmake_minimum_required(VERSION 3.0)
    project(cpython)
    
    file(GLOB SOURCE_FILES
        Python/*.c
        Parser/*.c
        Objects/*.c
        Modules/*.c)
    
    include_directories(Include)
    
    add_executable(cpython ${SOURCE_FILES})
    

    对于实际构建,请使用命令行中的标准构建工具。或者,可以将自定义命令添加到CMakeLists.txt 以调用make。请参阅add_custom_command

    【讨论】:

      【解决方案2】:

      如上所述,您需要一个 CMake 项目来允许 CLion 构建 Python。 事实上,已经有一个用于 CPython 的 CMakeList.txt 文件,它独立于官方来源进行维护:

      https://github.com/python-cmake-buildsystem/python-cmake-buildsystem

      我没有用 CLion 测试它,但它应该可以完成这项工作......

      【讨论】:

      • 如果我错了,请纠正我,但我不认为CMakeLists.txt 是针对 CPython 本身的,而是它是一个 meta 构建系统:它生成不同的为 CPython 构建系统(例如“Visual Studio”、“Unix Makefiles”),但我没有看到 CLion 的选项或为 CPython 本身生成 CMakeLists.txt 的选项。
      • 正确,CMake 只为“Visual Studio”、“Makefiles”或类似项目构建项目。但是 CLion 在内部处理这些 Makefile。因此,从开发人员的角度来看,感觉 CLion 可以与 CMakefile 一起使用。
      • 请参阅自述文件。如那里所述,CMakeLists.txt 将从 python.org 下载 CPython。但是可以禁用此行为。
      猜你喜欢
      • 2017-05-02
      • 2021-03-20
      • 2011-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多