C++ 编译器/链接器未使用.manifest文件

C++ 编译器/链接器未使用.manifest文件,c++,windows,codeblocks,manifest,msys2,C++,Windows,Codeblocks,Manifest,Msys2,一些背景: 我在代码中使用C++语言:Windows 10中的块IDE。通常,当我安装Code::Blocks时,我使用mingw安装构建,这样我就可以直接开始编程了。因此,我没有设置编译器之类的经验。最近一个朋友让我为他做一个节目,所以我接受了他,并决定开始工作。当构建它的时候,它不起作用了,我知道编译器已经过时了,所以我换了一个新的 问题: 当我试图用新的编译器为我的朋友制作程序requireadministrator perms时,我制作了正常的清单文件。程序已经构建,一切都很好,但我意识

一些背景:

我在代码中使用C++语言:Windows 10中的块IDE。通常,当我安装Code::Blocks时,我使用mingw安装构建,这样我就可以直接开始编程了。因此,我没有设置编译器之类的经验。最近一个朋友让我为他做一个节目,所以我接受了他,并决定开始工作。当构建它的时候,它不起作用了,我知道编译器已经过时了,所以我换了一个新的

问题:

当我试图用新的编译器为我的朋友制作程序requireadministrator perms时,我制作了正常的清单文件。程序已经构建,一切都很好,但我意识到我的程序不需要管理员权限。我去我的旧编译器看看我是否把事情弄糟了,而我没有,新的编译器只是不能处理清单文件

我以前能够做的事情:

以前,在我更改编译器之前,我能够将name.exe.manifest文件与name.exe文件放在同一个文件夹中,构建它,然后我就成功了。现在,即使把它放进文件夹,它也不起作用

问题:

  • 是否有任何MSYS2软件包可用于修复此问题
  • 到底是什么问题
  • 我怎样才能防止将来发生这种情况
  • 除了MSYS2软件包之外,我还可以如何修复此问题
  • 与Code::Blocks one相比,我的自定义构建中的一些文件丢失了,如果我将它们复制到我的构建中,它会工作吗
我的尝试:

  • 我已尝试将清单文件放在几个不同的文件夹中
  • 我已尝试更改链接器设置以包括“-o Dir/SubDir/Manifest”
  • 我已经尝试让链接器搜索不同的目录
  • 我试着研究这个问题,四处打听。(我的结论是编译器/链接器有问题,或者我没有需要的文件
我的主要文件代码:


MSYS2编译器(自定义编译器):

*如果您看一下,与我的构建相比,普通代码::Blocks Mingw编译器的bin目录相形见绌

==========================================================================


我很乐意回答您的任何问题!

这是64位版本吗?如果是,您可能需要
processorArchitecture=“*”
在您的清单文件中。@PaulSanders是,但我的清单文件与旧编译器一起使用,是一个64位编译器。虽然我可以尝试添加它,但您建议我将它放在哪里?以代替
processorArchitecture=“X86”
。无论如何,值得一试。不,这似乎不能解决问题,我确实有大量的库,这可能是问题吗?我不这么认为。您可以尝试将清单作为资源嵌入(我就是这么做的),请参阅:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
  <assemblyIdentity version="1.0.0.0"
     processorArchitecture="X86"
     name="NAME HERE"
     type="win32"/> 
  <description>DESCRIPTION HERE</description> 
  <!-- Identify the application security requirements. -->
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel
          level="requireAdministrator"
          uiAccess="false"/>
        </requestedPrivileges>
       </security>
  </trustInfo>
</assembly>