草庐IT

c++ - 在 Windows 上使用 Clang 链接 SDL2 时出错 "LNK1561: entry point must be defined"

我正在尝试在Windows上使用clang来编译和链接SDL2应用程序。这样做的原因是试图让我的开发环境与其他使用OSX和XCode(使用clang编译)的团队成员保持一致。由于VisualC++编译器比clang编译器严格得多,我可能会提交不会在clang下编译的更改。我宁愿不必安装VS2015来使用实验性LLVM构建环境:(链接已删除)我已经在Windows上安装了LLVM/clang工具(不是从源代码构建的,只是从这里下载二进制文件:(链接已删除))并且可以使用clang成功构建和运行“helloworld”控制台应用程序。我想做的是拥有一个批处理文件,允许我定期构建和链接cla

c++ - "LNK1104 Cannot open file ' kernel32.lib ' "当 Windows SDK 版本设置为 15063.13 时

我在VisualStudio2017中使用C++,最近刚刚将Windows10从周年更新更新为创作者更新。无意中发现,在编译DLL项目时,会出现错误信息:LNK1104-无法打开文件“kernel32.lib”在项目属性中稍微调整了一下后,我注意到如果将WindowsSDK版本从10.0.14393.0设置为10.0.15063.0,则会出现错误消息。如果我将它设置回10.0.14393.0,我可以正常编译。我想知道为什么当WindowsSDK版本设置为Creator'sUpdate构建版本时,会抛出此错误消息,但如果设置回AnniversaryUpdate构建版本则不会?谢谢。

c++ - LNK1106 大二进制资源

我有一个相当大的.dat文件(896MB)作为BIN资源包含在我的项目中。现在我收到LNK1106链接错误(“fatalerrorLNK1106:无效文件或磁盘已满:无法查找0x382A3920”。)我在WindowsXP下使用VisualStudio2005,并尝试在具有高虚拟内存设置和大量磁盘空间的4GBRAM机器上运行。我尝试了多种不同的优化标志,但无济于事。有人知道吗?编辑:我已将其缩小到编译资源的特定大小。如果.res文件为544078588字节(约518.9MB)或更大,则会出现错误。如果它更小,它工作得很好。仍然没有解决方案,但是... 最佳答

c++ - 全新安装 Qt SDK 和 Visual C++ 2008 时出现 LNK4099 链接器警告

是否在新的Windows7计算机上进行了全新安装:VisualStudio2008SP1QtSDK1.1.4然后我在QtCreator中创建了一个新项目。我在“QtWidget项目”下选择了“QtGui应用程序”,并让它以VisualC++2008的桌面为目标,包括调试和发布(基本上是默认设置)。然后我按下Build,然后得到......qtmaind.lib(qtmain_win.obj):-1:warning:LNK4099:PDB'vc90.pdb'wasnotfoundwith'c:\QtSDK\Desktop\Qt\4.7.4\msvc2008\lib\qtmaind.lib

windows - 如何解决LNK2019 unresolved external symbol DriverEntry referenced in function GsDriverEntry?

当我编译这个项目时https://github.com/namazso/hdd_serial_spoofer我收到上面的错误信息,我该如何解决?我正在使用vs2017和wdk10。(必须在release中编译,不支持Debug模式。本项目中没有DriverEntry函数,hwid.cpp中的EntryPoint(void*ntoskrn,void*image,void*alloc)函数才是真正的入口点。)我做了很多研究,但还是没能成功。我是内核模式驱动程序开发的菜鸟。 最佳答案 该项目使用(一个明显被忽略的)选项定义EntryPoi

c++ - Windows (.lnk) 快捷方式 API?

是否有任何函数可以让您在Windows中创建快捷方式,就像在Linux中创建符号链接(symboliclink)一样?我希望能够编辑诸如目标和名称之类的内容,而不是每次由于更新而想要更改某些内容时都必须重新创建一个全新的快捷方式。我尝试在文本编辑器中打开一个.lnk文件,它是一大堆傻瓜。我想知道为什么它是半二进制的,因为Linux上的快捷方式就像一个.ini文件,简单易用。我担心如果我去浏览数据,我可能会打乱某种校验和并且快捷方式将不起作用,所以这就是为什么我想知道是否应该调用特定的API来修补这些对象。更新:我找到了查询快捷方式数据的函数MsiGetShortcutTarget()h

c++ - 我收到错误 "LINK : error LNK2001: unresolved external symbol _WinMainCRTStartup"

请帮忙。在VisualStudio2008上,我收到以下错误。============================================================1>Microsoft(R)WindowsResourceToObjectConverterVersion9.00.30729.011>Copyright(C)MicrosoftCorporation.Allrightsreserved.1>addingresource.type:ICON,name:1,language:0x0409,flags:0x1010,size:7441>addingresourc

c++ - 为什么在使用其他库时会出现 LNK4098 冲突 - 尝试在 MSVS2010 Express 中编译 C++ 时?

我的程序无法在/MT(多线程)模式下成功编译。它在/MD(多线程DLL)中编译。我希望能够在我将与安装程序一起分发的应用程序中同时使用libcurl和boost。编译于:MSVS2010这是复制我的问题的代码:#include"stdafx.h"#include"boost/regex.hpp"#include"curl/curl.h"int_tmain(intargc,_TCHAR*argv[]){CURL*curl;curl=curl_easy_init();return0;}这是我在/MD模式下收到的警告:LINK:warningLNK4098:defaultlib'MSVCRT

windows - CRT 10.0 版的 LNK2022 和 LNK2034 链接器错误

很抱歉打扰任何人这个问题,但我已经研究了几个小时,还没有解决方案:我正在将一个相当庞大的应用程序移植到VisualStudio2010中的10.0CRT(编译器)。该应用程序是使用/clr的托管C++/CLI。大部分代码是原生的(95%),其中有一些托管部分。所以我的工作是在.vcxproj中进行切换以针对较新的10.0CRT(即编译器)。我们以前使用的是v90,或者使用VS2008SP1附带的VC编译器。好吧,这么重大的变化?实际上看起来像一堆。我修复了一些处理集合的迭代器问题,这一切都非常简单。但是这些链接器错误让我很难受。任何帮助将不胜感激:1>MSVCMRTD.lib(loca

windows - 从 Windows .lnk(快捷方式)文件中提取图标

我需要从Windows快捷方式(.lnk)文件中提取图标(或者找到图标文件,如果它只是由快捷方式指向的话)。我不是在询问从exe、dll等文件中提取图标的问题。相关快捷方式是在我运行安装程序时创建的。并且快捷方式显示的图标不包含在快捷方式指向的.exe中。推测该图标嵌入在.lnk文件中,或者.lnk文件包含指向该图标所在位置的指针。但是我找到的实用程序都没有解决这个问题——它们都只是转到.exe。非常感谢! 最佳答案 使用Shell32方法获取链接:StringlnkPath=@"C:\Users\PriceR\Desktop\Mi