我在桌面上创建了一个独立的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!
答案 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来解决重置问题,尽管这不是一个漂亮的解决方案