" CL.EXE"不在独立项目中编译C ++

时间:2018-06-05 04:09:10

标签: c++ compiler-errors cl

如何修复" 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 :(得分:0)

接受塔德曼的评论:

看起来您没有设置环境变量来使用cl.exe 如果你有cl.exe,你还应该有一个名为vcvarsall.bat或vcvars32.bat / vcvars64.bat的Bat-File。如果是默认的Visual Studio安装,可以在“Program Files(x86)\ Microsoft Visual Studio \ version number \ produkt type”下找到它们,例如community \ VC \ Auxiliary \ Build“。

运行相应版本的vcvars ...(32位或64位,或指定vcvarsall的标志,请参阅docs),并设置THAT SESSION的包含路径(如果您关闭它,则在该终端内部)再次丢失,下次你必须再次打电话给vcvars。

编辑:Microsoft documentation on vcvars

您可以在执行编译器之前每次调用vcvars来解决重置问题,尽管这不是一个漂亮的解决方案