2012-04-10 24 views
0

Audacity 2.0.0をコンパイルしようとしていて、次のエラーが表示されます。私はC/C++の新機能ですので、トラブルシューティングの方法が不明です。私はVS 2010 Professional SP1を使用しています。Audacity MSB4023のアイテムメタデータをコンパイルする際のエラーがMSVC 2010に適用されない

エラー449エラーMSB4023:アイテムメタデータ "%(拡張子)"を評価できません。 C:\ audacity-src-2.0.0 \ win \ Debug \ Audacity.vcxproj \ analyze.ny ""というパスにアイテムメタデータ "%(Extension)"を適用することはできません。パスに不正な文字があります。 C:\ audacity-src-2.0.0 \ win \ ny.targets 65 6 Audacity

これは私のny.targetsファイルです。私はいくつかのグーグルをやったことがありますが、これまでのところ無益でした。

<?xml version="1.0" encoding="utf-8"?> 
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <ItemGroup> 
    <PropertyPageSchema 
     Include="$(MSBuildThisFileDirectory)$(MSBuildThisFileName).xml" /> 
    <AvailableItemName 
     Include="copy"> 
     <Targets>_copy</Targets> 
    </AvailableItemName> 
    </ItemGroup> 
    <UsingTask 
    TaskName="copy" 
    TaskFactory="XamlTaskFactory" 
    AssemblyName="Microsoft.Build.Tasks.v4.0"> 
    <Task>$(MSBuildThisFileDirectory)$(MSBuildThisFileName).xml</Task> 
    </UsingTask> 
    <Target 
    Name="_copy" 
    BeforeTargets="$(copyBeforeTargets)" 
    AfterTargets="$(copyAfterTargets)" 
    Condition="'@(copy)' != ''" 
    DependsOnTargets="$(copyDependsOn);ComputecopyOutput" 
    Outputs="@(copy-&gt;'%(Outputs)')" 
    Inputs="@(copy);%(copy.AdditionalDependencies);$(MSBuildProjectFile)"> 
    <ItemGroup 
     Condition="'@(SelectedFiles)' != ''"> 
     <copy 
     Remove="@(copy)" 
     Condition="'%(Identity)' != '@(SelectedFiles)'" /> 
    </ItemGroup> 
    <ItemGroup> 
     <copy_tlog 
     Include="%(copy.Outputs)" 
     Condition="'%(copy.Outputs)' != '' and '%(copy.ExcludedFromBuild)' != 'true'"> 
     <Source>@(copy, '|')</Source> 
     </copy_tlog> 
    </ItemGroup> 
    <Message 
     Importance="High" 
     Text="%(copy.ExecutionDescription)" /> 
    <WriteLinesToFile 
     Condition="'@(copy_tlog)' != '' and '%(copy_tlog.ExcludedFromBuild)' != 'true'" 
     File="$(IntDir)$(ProjectName).write.1.tlog" 
     Lines="^%(copy_tlog.Source);@(copy_tlog-&gt;'%(Fullpath)')" /> 
    <copy 
     Condition="'@(copy)' != '' and '%(copy.ExcludedFromBuild)' != 'true'" 
     CommandLineTemplate="%(copy.CommandLineTemplate)" 
     OutputName="%(copy.OutputName)" 
     AdditionalOptions="%(copy.AdditionalOptions)" 
     Inputs="@(copy)" /> 
    </Target> 
    <PropertyGroup> 
    <ComputeLinkInputsTargets> 
     $(ComputeLinkInputsTargets); 
     ComputecopyOutput; 
    </ComputeLinkInputsTargets> 
    <ComputeLibInputsTargets> 
     $(ComputeLibInputsTargets); 
     ComputecopyOutput; 
    </ComputeLibInputsTargets> 
    </PropertyGroup> 
    <Target 
    Name="ComputecopyOutput" 
    Condition="'@(copy)' != ''"> 
    <ItemGroup> 
     <copyDirsToMake 
     Condition="'@(copy)' != '' and '%(copy.ExcludedFromBuild)' != 'true'" 
     Include="%(copy.Outputs)" /> 
     <Link 
     Include="%(copyDirsToMake.Identity)" 
     Condition="'%(Extension)'=='.obj' or '%(Extension)'=='.res' or '%(Extension)'=='.rsc' or '%(Extension)'=='.lib'" /> 
     <Lib 
     Include="%(copyDirsToMake.Identity)" 
     Condition="'%(Extension)'=='.obj' or '%(Extension)'=='.res' or '%(Extension)'=='.rsc' or '%(Extension)'=='.lib'" /> 
     <ImpLib 
     Include="%(copyDirsToMake.Identity)" 
     Condition="'%(Extension)'=='.obj' or '%(Extension)'=='.res' or '%(Extension)'=='.rsc' or '%(Extension)'=='.lib'" /> 
    </ItemGroup> 
    <MakeDir 
     Directories="@(copyDirsToMake-&gt;'%(RootDir)%(Directory)')" /> 
    </Target> 
</Project> 

答えて

1

エラーの原因を特定できませんでしたが、回避策が見つかりました。

回避策はVS2010を使用してAudacityをコンパイルしないでください。

使用VS2008 —それはこのリンク、http://wiki.audacityteam.org/wiki/Developing_On_Windows#What_about_Visual_Studio_2010.3F__Or_64-bit.3Fは、詳細な指示を与え、2008年

で右バット働いていました。

VC++ 2008 Expressは2010年と並行してインストールされますが、問題はありません。ここで

が、彼らはそれが2010で動作するように取得しようとしているスレッドであるレコードのhttp://forum.audacityteam.org/viewtopic.php?f=19&t=61946

4

、あなたの問題は、引用符によって引き起こされます。

入れます:あなたが入力に渡しているかに依存しますあなたはどのように

"C:\audacity-src-2.0.0\win\Debug\Audacity.vcxproj\analyze.ny" 

の中へ

""C:\audacity-src-2.0.0\win\Debug\Audacity.vcxproj\analyze.ny"" 

1

VS2010のSourceforgeから最新のコードをコンパイルするのは、ny.propsファイルを1か所で変更し、portaudio-v19とportmixerのPre-BuildとPost-Buildの各ステップで変数を拡張することです。現在のソリューションでは、以下のようにVS2010の環境変数を取得することはできません。それらを拡大することはこれを過ぎているようです。しかし、SDKディレクトリ環境変数のような事前宣言された変数は正常に動作します。

また、ny.propsファイル内の引用符の単一の修正により、後ですべてのカスケードが修正されます。これは適切にコンパイルするための最小限の修正と思われます。

修正

は以下の通りです:

ny.props元:

<?xml version="1.0" encoding="utf-8"?> 
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup 
    Condition="'$(copyBeforeTargets)' == '' and '$(copyAfterTargets)' == '' and '$(ConfigurationType)' != 'Makefile'"> 
    <copyBeforeTargets>Midl</copyBeforeTargets> 
    <copyAfterTargets>CustomBuild</copyAfterTargets> 
    </PropertyGroup> 
    <PropertyGroup> 
    <copyDependsOn 
     Condition="'$(ConfigurationType)' != 'Makefile'">_SelectedFiles;$(copyDependsOn)</copyDependsOn> 
    </PropertyGroup> 
    <ItemDefinitionGroup> 
    <copy> 
     <OutputName>"$(OutDir)$(ProjectFileName)\%(Filename)%(Extension)"</OutputName> 
     <CommandLineTemplate>copy /Y [inputs] %(OutputName)</CommandLineTemplate> 
     <Outputs>%(OutputName)</Outputs> 
     <ExecutionDescription>Copying %(Filename)</ExecutionDescription> 
    </copy> 
    </ItemDefinitionGroup> 
</Project> 

NY。小道具の修正:

<?xml version="1.0" encoding="utf-8"?> 
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup 
    Condition="'$(copyBeforeTargets)' == '' and '$(copyAfterTargets)' == '' and '$(ConfigurationType)' != 'Makefile'"> 
    <copyBeforeTargets>Midl</copyBeforeTargets> 
    <copyAfterTargets>CustomBuild</copyAfterTargets> 
    </PropertyGroup> 
    <PropertyGroup> 
    <copyDependsOn 
     Condition="'$(ConfigurationType)' != 'Makefile'">_SelectedFiles;$(copyDependsOn)</copyDependsOn> 
    </PropertyGroup> 
    <ItemDefinitionGroup> 
    <copy> 
     <OutputName>$(OutDir)$(ProjectFileName)\%(Filename)%(Extension)</OutputName> 
     <CommandLineTemplate>copy /Y [inputs] "%(OutputName)"</CommandLineTemplate> 
     <Outputs>%(OutputName)</Outputs> 
     <ExecutionDescription>Copying %(Filename)</ExecutionDescription> 
    </copy> 
    </ItemDefinitionGroup> 
</Project> 

portaudio-V19は、元のビルド前:

echo on 
set CFG="$(ProjectDir)/$(Configuration)/config.h" 

echo // Automatically generated file >%CFG% 
IF NOT "%DXSDK_DIR%" == "" echo #define PA_USE_DS 1 >>%CFG% 
IF NOT "%ASIOSDK_DIR%" == "" echo #define PA_USE_ASIO 1 >>%CFG% 
IF NOT "%JACKSDK_DIR%" == "" echo #define PA_USE_JACK 1 >>%CFG% 
IF NOT "%JACKSDK_DIR%" == "" echo #define PA_DYNAMIC_JACK 1 >>%CFG% 
rem echo #define PA_USE_WDMKS 1 >>%CFG% 
echo #define PA_USE_WASAPI 1 >>%CFG% 
echo #define PA_USE_WMME 1 >>%CFG% 

portaudio-V19プリビルド修正:

echo // Automatically generated file >"$(ProjectDir)/$(Configuration)/config.h" 
IF NOT "%DXSDK_DIR%" == "" echo #define PA_USE_DS 1 >>"$(ProjectDir)/$(Configuration)/config.h" 
IF NOT "%ASIOSDK_DIR%" == "" echo #define PA_USE_ASIO 1 >>"$(ProjectDir)/$(Configuration)/config.h" 
IF NOT "%JACKSDK_DIR%" == "" echo #define PA_USE_JACK 1 >>"$(ProjectDir)/$(Configuration)/config.h" 
IF NOT "%JACKSDK_DIR%" == "" echo #define PA_DYNAMIC_JACK 1 >>"$(ProjectDir)/$(Configuration)/config.h" 
rem echo #define PA_USE_WDMKS 1 >>"$(ProjectDir)/$(Configuration)/config.h" 
echo #define PA_USE_WASAPI 1 >>"$(ProjectDir)/$(Configuration)/config.h" 
echo #define PA_USE_WMME 1 >>"$(ProjectDir)/$(Configuration)/config.h" 

portaudio-V19オリジナルポストビルドします

echo on 
set BASE="../../../lib-src/portaudio-v19" 
set CFG=$(ProjectDir)$(Configuration)\config.h 
set INTDIR=$(Configuration) 
set CFLAGS=/O2 /GL /I "%BASE%/include" /I "%BASE%/src/common" /I "%BASE%/src/os/win" /D "WIN32" /D "NDEBUG" /D "_LIB" /D "_MBCS" /GF /FD /EHsc /MD /Gy /Fo"%INTDIR%/" /Fd"%INTDIR%" /W3 /nologo /c /wd4996 /FI "%CFG%" /errorReport:prompt 
set LIBS= 

find "PA_USE_DS 1" "%CFG%" 
IF ERRORLEVEL 1 goto NoDS 

cl %CFLAGS% /I "%DXSDK_DIR%/include" "%BASE%/src/hostapi/dsound/pa_win_ds.c" 
cl %CFLAGS% /I "%DXSDK_DIR%/include" "%BASE%/src/hostapi/dsound/pa_win_ds_dynlink.c" 

set LIBS="%DXSDK_DIR%/lib/x86\dxguid.lib" 

:NoDS 

find "PA_USE_WASAPI 1" "%CFG%" 
IF ERRORLEVEL 1 goto NoWASAPI 

cl %CFLAGS% "%BASE%/src/hostapi/wasapi/pa_win_wasapi.c" 

:NoWASAPI 

find "PA_USE_WDMKS 1" "%CFG%" 
IF ERRORLEVEL 1 goto NoWDMKS 

cl %CFLAGS% "%BASE%/src/hostapi/wdmks/pa_win_wdmks.c" 

:NoWDMKS 

find "PA_USE_ASIO 1" "%CFG%" 
IF ERRORLEVEL 1 goto NoASIO 

cl %CFLAGS% /I "%ASIOSDK_DIR%/common" /I "%ASIOSDK_DIR%/host" /I "%ASIOSDK_DIR%/host/pc" "%BASE%/src/hostapi/asio/pa_asio.cpp" 
cl %CFLAGS% /I "%ASIOSDK_DIR%/common" /I "%ASIOSDK_DIR%/host" /I "%ASIOSDK_DIR%/host/pc" "%BASE%/src/hostapi/asio/iasiothiscallresolver.cpp" 
cl %CFLAGS% /I "%ASIOSDK_DIR%/common" /I "%ASIOSDK_DIR%/host" /I "%ASIOSDK_DIR%/host/pc" "%ASIOSDK_DIR%/common/asio.cpp" 
cl %CFLAGS% /I "%ASIOSDK_DIR%/common" /I "%ASIOSDK_DIR%/host" /I "%ASIOSDK_DIR%/host/pc" "%ASIOSDK_DIR%/host/asiodrivers.cpp" 
cl %CFLAGS% /I "%ASIOSDK_DIR%/common" /I "%ASIOSDK_DIR%/host" /I "%ASIOSDK_DIR%/host/pc" "%ASIOSDK_DIR%/host/pc/asiolist.cpp" 

:NoASIO 

find "PA_USE_JACK 1" "%CFG%" >NUL 
IF ERRORLEVEL 1 goto NoJACK 

cl %CFLAGS% /I "%JACKSDK_DIR%/includes" "%BASE%/src/hostapi/jack/pa_jack.c" 
cl %CFLAGS% /I "%JACKSDK_DIR%/includes" "%BASE%/src/hostapi/jack/pa_jack_dynload.c" 

:NoJACK 

lib /OUT:"$(TargetPath)" "%INTDIR%/*.obj" %LIBS% 

portaudio-v19ポストビルドfi X:

find "PA_USE_DS 1" "$(ProjectDir)$(Configuration)/config.h" 
IF ERRORLEVEL 1 goto NoDS 

cl /O2 /GL /I "../../../lib-src/portaudio-v19/include" /I "../../../lib-src/portaudio-v19/src/common" /I "../../../lib-src/portaudio-v19/src/os/win" /D "WIN32" /D "NDEBUG" /D "_LIB" /D "_MBCS" /GF /FD /EHsc /MD /Gy /Fo"$(IntDir)/" /Fd"$(IntDir)/" /W3 /nologo /c /wd4996 /FI "$(ProjectDir)$(Configuration)/config.h" /errorReport:prompt /I "%DXSDK_DIR%/include" "../../../lib-src/portaudio-v19/src/hostapi/dsound/pa_win_ds.c" 
cl /O2 /GL /I "../../../lib-src/portaudio-v19/include" /I "../../../lib-src/portaudio-v19/src/common" /I "../../../lib-src/portaudio-v19/src/os/win" /D "WIN32" /D "NDEBUG" /D "_LIB" /D "_MBCS" /GF /FD /EHsc /MD /Gy /Fo"$(IntDir)/" /Fd"$(IntDir)/" /W3 /nologo /c /wd4996 /FI "$(ProjectDir)$(Configuration)/config.h" /errorReport:prompt /I "%DXSDK_DIR%/include" "../../../lib-src/portaudio-v19/src/hostapi/dsound/pa_win_ds_dynlink.c" 

:NoDS 

find "PA_USE_WASAPI 1" "$(ProjectDir)$(Configuration)/config.h" 
IF ERRORLEVEL 1 goto NoWASAPI 

cl /O2 /GL /I "../../../lib-src/portaudio-v19/include" /I "../../../lib-src/portaudio-v19/src/common" /I "../../../lib-src/portaudio-v19/src/os/win" /D "WIN32" /D "NDEBUG" /D "_LIB" /D "_MBCS" /GF /FD /EHsc /MD /Gy /Fo"$(IntDir)/" /Fd"$(IntDir)/" /W3 /nologo /c /wd4996 /FI "$(ProjectDir)$(Configuration)/config.h" /errorReport:prompt "../../../lib-src/portaudio-v19/src/hostapi/wasapi/pa_win_wasapi.c" 

:NoWASAPI 

find "PA_USE_WDMKS 1" "$(ProjectDir)$(Configuration)/config.h" 
IF ERRORLEVEL 1 goto NoWDMKS 

cl %CFLAGS% "%BASE%/src/hostapi/wdmks/pa_win_wdmks.c" 

:NoWDMKS 

find "PA_USE_ASIO 1" "$(ProjectDir)$(Configuration)/config.h" 
IF ERRORLEVEL 1 goto NoASIO 

cl %CFLAGS% /I "%ASIOSDK_DIR%/common" /I "%ASIOSDK_DIR%/host" /I "%ASIOSDK_DIR%/host/pc" "%BASE%/src/hostapi/asio/pa_asio.cpp" 
cl %CFLAGS% /I "%ASIOSDK_DIR%/common" /I "%ASIOSDK_DIR%/host" /I "%ASIOSDK_DIR%/host/pc" "%BASE%/src/hostapi/asio/iasiothiscallresolver.cpp" 
cl %CFLAGS% /I "%ASIOSDK_DIR%/common" /I "%ASIOSDK_DIR%/host" /I "%ASIOSDK_DIR%/host/pc" "%ASIOSDK_DIR%/common/asio.cpp" 
cl %CFLAGS% /I "%ASIOSDK_DIR%/common" /I "%ASIOSDK_DIR%/host" /I "%ASIOSDK_DIR%/host/pc" "%ASIOSDK_DIR%/host/asiodrivers.cpp" 
cl %CFLAGS% /I "%ASIOSDK_DIR%/common" /I "%ASIOSDK_DIR%/host" /I "%ASIOSDK_DIR%/host/pc" "%ASIOSDK_DIR%/host/pc/asiolist.cpp" 

:NoASIO 

find "PA_USE_JACK 1" "$(ProjectDir)$(Configuration)/config.h" 
IF ERRORLEVEL 1 goto NoJACK 

cl %CFLAGS% /I "%JACKSDK_DIR%/includes" "%BASE%/src/hostapi/jack/pa_jack.c" 
cl %CFLAGS% /I "%JACKSDK_DIR%/includes" "%BASE%/src/hostapi/jack/pa_jack_dynload.c" 

:NoJACK 

lib /OUT:"$(TargetPath)" "$(IntDir)/*.obj" "%DXSDK_DIR%/lib/x86/dxguid.lib" 


portmixer Post-Build original: 

set BASE="../../../lib-src/portmixer" 
set CFLAGS=/O2 /GL /I "%BASE%/../portaudio-v19/include" /I "%BASE%/include" /D "WIN32" /D "NDEBUG" /D "_LIB" /D "PX_USE_WIN_MME" /D "_MBCS" /GF /FD /EHsc /MD /Gy /Fo"$(IntDir)" /Fd"$(IntDir)" /W3 /nologo /c /wd4996 /FI "$(ProjectDir)/$(Configuration)/config.h" /errorReport:prompt 

if "%DXSDK_DIR%"=="" goto NoDX 

cl %CFLAGS% /I "%DXSDK_DIR%/include" "%BASE%/src/px_win_ds.c" 

set LIBS="%DXSDK_DIR%/lib/x86/dxguid.lib" 

:NoDX 

lib /OUT:"$(TargetPath)" "$(IntDir)*.obj" %LIBS% 


portmixer Post-Build fix: 

if "%DXSDK_DIR%"=="" goto NoDX 

cl /O2 /GL /I "../../../lib-src/portmixer/../portaudio-v19/include" /I "../../../lib-src/portmixer/include" /D "WIN32" /D "NDEBUG" /D "_LIB" /D "PX_USE_WIN_MME" /D "_MBCS" /GF /FD /EHsc /MD /Gy /Fo"$(IntDir)/" /Fd"$(IntDir)/" /W3 /nologo /c /wd4996 /FI "$(ProjectDir)/$(Configuration)/config.h" /errorReport:prompt /I "%DXSDK_DIR%/include" "../../../lib-src/portmixer/src/px_win_ds.c" 

:NoDX 

lib /OUT:"$(TargetPath)" "$(IntDir)/*.obj" "%DXSDK_DIR%/lib/x86/dxguid.lib" 

portmixerオリジナルポストビルドします

set BASE="../../../lib-src/portmixer" 
set CFLAGS=/O2 /GL /I "%BASE%/../portaudio-v19/include" /I "%BASE%/include" /D "WIN32" /D "NDEBUG" /D "_LIB" /D "PX_USE_WIN_MME" /D "_MBCS" /GF /FD /EHsc /MD /Gy /Fo"$(IntDir)" /Fd"$(IntDir)" /W3 /nologo /c /wd4996 /FI "$(ProjectDir)/$(Configuration)/config.h" /errorReport:prompt 

if "%DXSDK_DIR%"=="" goto NoDX 

cl %CFLAGS% /I "%DXSDK_DIR%/include" "%BASE%/src/px_win_ds.c" 

set LIBS="%DXSDK_DIR%/lib/x86/dxguid.lib" 

:NoDX 

lib /OUT:"$(TargetPath)" "$(IntDir)*.obj" %LIBS% 

portmixerビルド後の修正:

if "%DXSDK_DIR%"=="" goto NoDX 

cl /O2 /GL /I "../../../lib-src/portmixer/../portaudio-v19/include" /I "../../../lib-src/portmixer/include" /D "WIN32" /D "NDEBUG" /D "_LIB" /D "PX_USE_WIN_MME" /D "_MBCS" /GF /FD /EHsc /MD /Gy /Fo"$(IntDir)/" /Fd"$(IntDir)/" /W3 /nologo /c /wd4996 /FI "$(ProjectDir)/$(Configuration)/config.h" /errorReport:prompt /I "%DXSDK_DIR%/include" "../../../lib-src/portmixer/src/px_win_ds.c" 

:NoDX 

lib /OUT:"$(TargetPath)" "$(IntDir)/*.obj" "%DXSDK_DIR%/lib/x86/dxguid.lib" 
0

私はトム・ボナーの答えにコメントするのに十分な評判を持っていないが、その情報を使用して、同じコード(別のコードベース)の解決策が、.pargetsファイルを.targetsファイルと同じディレクトリにあり、同じ名前QtUIBuild.propsとQtUIBuild.targets)、違反パスを探します。私の場合、それは

<Outputs>.\..\..\source\qt\GeneratedFiles\ui_%(Filename).h</Outputs> 

<Outputs>".\..\..\source\qt\GeneratedFiles\ui_%(Filename).h"</Outputs> 

を変えるの問題だった

関連する問題