Как создать exe-файл из файла Python, который, в свою очередь, компилирует программу C++ и выполняет этот exe-файлC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как создать exe-файл из файла Python, который, в свою очередь, компилирует программу C++ и выполняет этот exe-файл

Сообщение Anonymous »

У меня есть программа на C++, для которой требуются другие программы C++ и файлы заголовков, выходные данные программы нужно было отображать в графическом интерфейсе, поэтому я получил выходные данные программы C++ и отобразил их в графическом интерфейсе с помощью Python.Теперь мне нужно создать EXE-файл для файла Python, который затем можно будет использовать на любых компьютерах (он предназначен для касс транзакций). Это означает, что EXE-файл, сгенерированный из файла Python, скомпилирует файл C++ и затем запустит этот EXE-файл.
У меня на это очень мало времени. Я пытался использовать pyinstaller --onefile --add-data "transaction.cpp;". --add-data "til_checker_expr.cpp;." --add-data "transaction.h;." gui.py, но это вызывает FileNotFoundError: [WinError 2] Система не может найти указанный файл
Я сузил ошибку до этой строки, которая является список, содержащий команды компилятора subprocess.check_call(['g++', '-std=c++11', '-O3', '-Wall', '-Wextra', '-static', '-o', ' til_checker_expr.exe', 'transaction.cpp', 'till_checker_expr.cpp', '-lodbc32'])
Это программа на Python, я пытался переделать ее в текущий каталог самой программы, чтобы предотвратить эту ошибку, но я не уверен, куда идти дальше. Это очень специфическая и неудобная проблема.

Код: Выделить всё

def compile_cpp_program():
os.chdir(os.path.dirname(os.path.abspath(__file__)))
if os.path.exists('till_checker_expr.exe'):
return True
try:
subprocess.check_call(['g++', '-std=c++11', '-O3', '-Wall', '-Wextra', '-static', '-o', 'till_checker_expr.exe', 'transaction.cpp', 'till_checker_expr.cpp', '-lodbc32'])
return True
except subprocess.CalledProcessError:
return False

def get_cpp_output():
try:
cpp_output = subprocess.check_output(['./till_checker_expr.exe'], stderr=subprocess.STDOUT)
return cpp_output.decode('utf-8')
except subprocess.CalledProcessError as e:
print("Compilation Error:", e)
return f'Error: {e.output.decode("utf-8")}\n\nPlease contact IT'

def display_output():
output = get_cpp_output()
text_box.insert(tk.END, output)

if compile_cpp_program():
root = tk.Tk()
root.title("Till Transaction Checker")
# root.geometry("1200x800")
text_box = scrolledtext.ScrolledText(root, wrap=tk.WORD)
text_box.pack(fill=tk.BOTH, expand=True)
display_output()
root.mainloop()
else:
print("C++ program failed to compile. Please contact IT")
Я также должен объяснить причину использования Python: у меня нет достаточно времени для создания графического интерфейса на C++, я пробовал QT, FLTK, Dear ImGUI и win32api и продолжаю во всех из них возникают ошибки компиляции.

Подробнее здесь: https://stackoverflow.com/questions/784 ... m-and-exec
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»