"CL.exe" не компилируется в C ++ в отдельном проекте - PullRequest
0 голосов
/ 05 июня 2018

Как исправить "CL.exe", не компилируемый C ++ ??

Я создал автономный проект Python на своем рабочем столе, имейте в виду, что я не использую Visual Studio, я на самом деле используюpythontowin.Я хотел бы скомпилировать файл C ++ в DLL для использования в моем проекте Python.Но я получаю странные необъяснимые ошибки при попытке компиляции с cl.exe.

Вот мой файл C ++.

#include <Windows.h>
#include <iostream>

using namespace std;

void Thread() {
    cout < "Hello World" < endl;
    Sleep(1000);
}

BOOL DllMain(HINSTANCE hDll,DWORD dwReason, LPVOID) {
    if (dwReason == DLL_PROCESS_ATTACH) {
        CreateThread(0, 0, (LPTHREAD_START_ROUTINE)Thread, 0, 0, 0);
    }
    return TRUE;
}

Команда, используемая для cl.exe: cl.exe /std:c++14 /LD ./../LibraryXdll.cpp

И вот эта ошибка, которую я получаю: fatal error C1034: Windows.h: no include path set

Если бы кто-нибудь мог решить эту ошибку, я был бы очень благодарен и мог бы закончить своюПроект спасибо за помощь.С уважением, RanOutOfQuestions!

1 Ответ

0 голосов
/ 05 июня 2018

Обращаясь к комментарию Тадмана:

Похоже, вы не настроили переменные окружения для использования cl.exe. Если вы получили cl.exe, у вас также должен быть Bat-файл с именемvcvarsall.bat или vcvars32.bat / vcvars64.bat.В случае установки Visual Studio по умолчанию их можно найти в разделе «Program Files (x86) \ Microsoft Visual Studio \ номер версии \ тип продукта, например, сообщество \ VC \ Auxiliary \ Build».

Запустите соответствующую версию vcvars ... (32 или 64-битную или укажите флаг для vcvarsall, см. Документы), и ваши пути включения для ЭТОЙ СЕССИИ будут установлены (внутри этого терминала, если вы закроетеесли изменения снова потеряны, и вам придется снова вызывать vcvars в следующий раз).

EDIT: Документация Microsoft по vcvars

Вы можете обойти этот сброс, вызвав vcvarsкаждый раз перед запуском компилятора, хотя это не очень хорошее решение

...