1

.priと.proを使用してdllの作成に使用されるVisualStudioC++プロジェクトを作成するqmakeバッチファイルがあります。しかし、このプロジェクトのプロパティを自動的に設定したいのですが、特にデバッグコマンドとコマンドライン引数はqmakeで可能ですか?

4

2 に答える 2

3

可能です、作成します

add_qt_path.pri

次の内容でどこかにファイルします。

# test if windows
win32 {
  # test if already exists
  VCXPROJ_USER_FILE = "$${OUT_PWD}/$${TARGET}.vcxproj.user"
  !exists( $${VCXPROJ_USER_FILE}) {
    # generate file contents
    TEMPNAME     = $${QMAKE_QMAKE}     # contains full dir of qmake used
    QTDIR        = $$dirname(TEMPNAME) # gets only the path
    # vcxproj.user template
    VCXPROJ_USER = "<?xml version=\"1.0\" encoding=\"utf-8\"?>$$escape_expand(\\n)\
    <Project xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">$$escape_expand(\\n)\
      <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|Win32'\">$$escape_expand(\\n)\
        <LocalDebuggerEnvironment>PATH=$${QTDIR};%PATH%</LocalDebuggerEnvironment>$$escape_expand(\\n)\
        <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>$$escape_expand(\\n)\
      </PropertyGroup>$$escape_expand(\\n)\
      <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|Win32'\">$$escape_expand(\\n)\
        <LocalDebuggerEnvironment>PATH=$${QTDIR};%PATH%</LocalDebuggerEnvironment>$$escape_expand(\\n)\
        <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>$$escape_expand(\\n)\
      </PropertyGroup>$$escape_expand(\\n)\
      <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">$$escape_expand(\\n)\
        <LocalDebuggerEnvironment>PATH=$${QTDIR};%PATH%</LocalDebuggerEnvironment>$$escape_expand(\\n)\
        <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>$$escape_expand(\\n)\
      </PropertyGroup>$$escape_expand(\\n)\
      <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">$$escape_expand(\\n)\
        <LocalDebuggerEnvironment>PATH=$${QTDIR};%PATH%</LocalDebuggerEnvironment>$$escape_expand(\\n)\
        <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>$$escape_expand(\\n)\
      </PropertyGroup>$$escape_expand(\\n)\
    </Project>$$escape_expand(\\n)\
    "
    # write file
    write_file($${VCXPROJ_USER_FILE}, VCXPROJ_USER)  
  }
}

次に、TARGET定義の後にそれをqmakeプロジェクト(* .pro)ファイルに含めます。

QT += core
QT -= gui

TARGET = test3
CONFIG += console
CONFIG -= app_bundle

include(./../../add_qt_path.pri) # add qt path to vs project

# other qmake stuff

* .vcxproj.userに、デバッグコマンドやコマンドライン引数などの他のエントリを追加することもできます。手動で設定した場合、VisualStudioが*.vcxproj.userファイルでを自動生成する方法を確認してください。

于 2017-06-21T09:25:04.843 に答える
2

ほとんどのビルド環境プロパティは、qmakeオプションを使用してセットアップできます(qmakeソース(* _objectmodel。*ファイルなど)で見つけることができます)。残念ながら、必要な両方のオプションは実際にはランタイムオプションであるため、.pri/.proファイルでそれらを設定することはできないと思います。Afaik、それらは.vcxprojファイルではなく、.vcxproj.userファイルに保存されています。これがなかった場合、おそらく努力する価値はないでしょうが、qmakeを変更することはオプションであった可能性があります。

于 2012-10-11T23:28:26.157 に答える