草庐IT

c++ - LNK2019 当包含 asio header 时,使用 cmake 生成的解决方案

我正在尝试使用cmake和boost库将一个大项目从gcc(Linux)移植到msvc(windows)。该项目在gcc上编译和运行良好,但在msvc上它返回以下错误:Dyna.obj:errorLNK2019:unresolvedexternalsymbol"void__cdeclboost::throw_exception(classstd::exceptionconst&)"(?throw_exception@boost@@YAXABVexception@std@@@Z)referencedinfunction"void__cdeclboost::asio::detail::do

c++ - 多文件 <iostream> 错误 LNK2005 in VS2015 with/Za

当我从VS2013迁移我的项目时,我发现了一些奇怪的错误。以下是用于重现它的新创建项目的简化代码:A.cpp:#includeexternvoidfoo();intmain(){std::coutB.cpp:#includevoidfoo(){std::cout要添加的重要一点是项目将“禁用语言扩展”设置为是(/Za)。如果没有此设置,它会正常构建。输出是一长串以下错误:1>B.obj:errorLNK2005:"public:staticboolconststd::numeric_limits::is_signed"(?is_signed@?$numeric_limits@F@std

c++ - 访问静态变量 C++ 时出现 LNK2001 错误

我在尝试使用纹理时试图在我的代码中使用静态变量,但是我不断收到此错误:1>Platform.obj:errorLNK2001:unresolvedexternalsymbol"private:staticunsignedintPlatform::tex_plat"(?tex_plat@Platform@@0IA)我已经在cpp文件中正确地初始化了这个变量,但是我相信这个错误是在尝试以另一种方法访问它时发生的。.hclassPlatform:publicObject{public:Platform(void);~Platform(void);Platform(GLfloatxCoordI

c++ - msvcprtd.lib(MSVCP100D.dll): fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64'

我创建了一个vs2010win32程序(操作系统:Win8-64bit)然后,我尝试通过这样做将这个win32程序转换为x64:ConfigurationManager->newsolutionplatform(selectx64)->copysettingsfromwin32vs2010在之前的win32程序的基础上新建了一个x64程序。但是,当我尝试编译和运行x64程序时,出现一个错误:msvcprtd.lib(MSVCP100D.dll):fatalerrorLNK1112:模块机器类型“X86”与目标机器类型“x64”冲突通过重命名msvcprtd.lib的win32版本和x6

c++ - 如何告诉 link.exe 使用 wmain 作为入口点。 LNK2019 : unresolved external symbol main referenced in function __tmainCRTStartup

我有一个通过visualstudio构建和链接的项目,但不是通过我们的构建系统。据我所知,如果定义了UNICODE,tchar.h包含一个将_tmain转换为wmain的宏。我检查了预处理器输出,确实_tmain已被wmain替换。包含wmain的文件随后编译得很好,但链接器提示main未定义。LNK2019:函数__tmainCRTStartup中引用的未解析外部符号mainwmain是否被我没有正确包含的另一组宏转换为main(由于缺少-D选项等),或者link.exe是否有一个指定入口点的特殊标志。谢谢。手动指定/entry:mainCRTStartup修复了它。编辑:我刚刚检查

windows - WOW64 问题(.lnk 快捷方式)

我使用的是Windows7(x64)和Delphi2010。我正在编写一个组件来模拟开始菜单。但是,我遇到了以下问题:如果我尝试使用ShellExecute打开快捷方式(.lnk文件),只要%ProgramFiles%是快捷方式目标路径的一部分(它然后将查看C:\ProgramFiles(x86)文件夹而不是C:\ProgramFiles);如果%ProgramFiles%是图标文件路径的一部分,ShGetFileInfo无法在系统图像列表中提取正确的图标索引(与上述相同的问题).是否有任何解决上述问题的方法,或者我是否必须等待native64位Delphi可用才能使它起作用?

c# - 当完整路径解析为 64 位目录时,无法从 32 位 C# 应用程序启动快捷方式 (lnk) 文件

我正在尝试从C#应用程序启动“开始”菜单中的程序,“开始”菜单中几乎所有项目都是快捷方式(lnk)文件。当使用Process.Start启动这些文件时,我发现如果lnk文件的完整路径指向C:\ProgramFiles目录,我会收到“系统找不到指定的路径”错误。我用FileSystemRedirection做了一些研究在Windows中,所以我尝试禁用它,但我仍然遇到相同的错误://disablefilesystemredirection:IntPtrptr=newIntPtr();boolisWow64FsRedirectionDisabled=Wow64DisableWow64FsR

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)或更大,则会出现错误。如果它更小,它工作得很好。仍然没有解决方案,但是... 最佳答