libclang: добавить компилятор в систему, включить путь (Python в Windows)

Следуя этому вопросу и советам Эндрю, я пытаюсь заставить liblang добавить пути компиляции системы (в Windows) для моего кода Python

import clang.cindex

def parse_decl(node):
    reference_node = node.get_definition()
    if node.kind.is_declaration():
        print(node.kind, node.kind.name, 
              node.location.line, ',', node.location.column, 
              reference_node.displayname)

    for ch in node.get_children():
        parse_decl(ch)

# configure path
clang.cindex.Config.set_library_file('C:/Program Files (x86)/LLVM/bin/libclang.dll')

index = clang.cindex.Index.create()
trans_unit = index.parse(r'C:\path\to\sourcefile\test.cpp', args=['-std=c++11'])

parse_decl(trans_unit.cursor)

чтобы полностью разобрать исходные файлы C++, как этот

/* test.cpp
*/
#include <iostream>
#include <vector>
#include <fstream>
#include <cmath>
#include <algorithm>
#include <iomanip>

using namespace std;

void readfunction(vector<double>& numbers, ifstream& myfile)
{

  double number;
  while (myfile >> number) {
  numbers.push_back(number);}

}

double meanfunction(vector<double>& numbers)
{

  double total=0;
  vector<double>::const_iterator i;
  for (i=numbers.begin(); i!=numbers.end(); ++i) {
  total +=*i; }
  return total/numbers.size();

}

Теперь, если система компиляции не включает путь, настроенный соответствующим образом (с использованием Windows), я получаю следующий вывод:

CursorKind.USING_DIRECTIVE USING_DIRECTIVE 8 , 17 std
CursorKind.VAR_DECL VAR_DECL 10 , 6 readfunction

Process finished with exit code 0

<Diagnostic severity 4, location <SourceLocation file 'test.cpp', line 3, column 10>, spelling "'iostream' file not found">

К сожалению, я не могу понять (новый в Python и Clang) этот подход или как реализовать это решение в моем коде Python.

Я также пробовал ccsyspath, но у меня нет навыков, чтобы "настроить его для Windows".

Кто-нибудь знает, как решить эту проблему?

0 ответов

В Windows, чтобы добавить что-то к пути, вы должны сделать следующее:

  1. Свойства системы
  2. продвинутый
  3. Переменные среды
  4. Выберите "путь" из таблицы
  5. Первая кнопка "Редактировать"
  6. Добавьте в расположение исполняемого файла, который вы пытаетесь добавить в путь

Надеюсь это поможет!


(Пожалуйста, скажите мне, если я неправильно понял ваш вопрос, я все еще новичок в переполнении стека. Спасибо!)

Другие вопросы по тегам