2013-07-16 11 views
16

Czy można przekazywać opcje do linkera za pośrednictwem linii komunikacyjnej msbuild? Na przykład chcę ustawić opcję łącznika VC /PROFILE. Jak to zrobić bez zmiany pliku projektu C++?Jak przekazać opcje linkera do msbuild za pomocą wiersza poleceń?

PS: Visual Studio Express 2012.

+0

Możliwa duplikat [ Jak ustawić PreProcessorDefinitions jako zadanie przeznaczone do zadania msbuild] (http://stackoverflow.com/questions/15141429/how-to-set-preprocessordefinitions-as-a-task-propery-for-the-msbuild-task) – stijn

Odpowiedz

20

Wewnątrz projectfile opcje łącznikowe są ustawione w ItemGroup, więc nie można po prostu dodać lub zastąpić ten z linii poleceń. Zamiast tego będziesz musiał dodać do nich msbuild, który można zrobić tylko poprzez zaimportowanie innego pliku msbuild. Ta funkcja jest obsługiwana: jeśli ustawisz ForceImportBeforeCppTargets w linii poleceń, msbuild zaimportuje plik, do którego wskazuje.

Praktycznie: tworzenie tego pliku, nazwijmy to c: \ rekwizytów \ profile.props

<?xml version="1.0" encoding="utf-8"?> 
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <ItemDefinitionGroup> 
    <Link> 
     <Profile>true</Profile> 
    </Link> 
    </ItemDefinitionGroup> 
</Project> 

Następnie zbudować (bez modyfikacji) projekt takiego:

msbuild myProject.vcxproj /p:ForceImportBeforeCppTargets=c:\props\profile.props 
+0

To jest naprawdę pomocna. Dzięki! – ArtDen

+0

Zobacz [o] (http://stackoverflow.com/about) - jeśli odpowiedziałeś na twoje pytanie, powinieneś oznaczyć je jako takie, aby dla przyszłych zwiedzających było oczywiste, że proponowana sceneria działa – stijn

+0

Wiem, ale moja reputacja jest mniejsza niż 15, więc nie mogę oznaczyć twojej odpowiedzi jako użytecznej. Przepraszam. – ArtDen

Powiązane problemy