2011-12-14 11 views
7

czy można ustawić (najlepiej z GUI) Build Configuration, aby automatycznie dodawać przyrostki do plików wyjściowych zgodnie z docelową platformą?Czy można skonfigurować konfigurację kompilacji, aby automatycznie dodawać sufiksy na platformę docelową?

To znaczy, będę miał dla projektu instancja biblioteki nazwie Project i chciałbym dostać

Project.dll - when I build the project for 32-bit platform 
Project64.dll - when I build the project for 64-bit platform 

Dziękuję

+0

O ile wiem, jedyne co można zmienić to rozszerzenie z '{$ E}' –

+0

Niestety {$ E} umieszcza wartość za kropką rozszerzenia, więc przy użyciu '{$ E 64.dll } 'Zbudowałoby mi coś takiego jak" Project.64.dll ", co nie jest tak dobre :( –

+0

Tak, zdaję sobie sprawę, że nie jest to, co chcesz.Tak, o ile wiem, to jest tylko Opcja, którą mam do dyspozycji, Moim rozwiązaniem jest użycie skryptów do budowania postów w celu zmiany nazwy pliku –

Odpowiedz

12

Zabawne starałem się robić dokładnie to samo wczoraj do pliku wykonywalnego plik mojej aplikacji. Doszedłem do wniosku, że nie można zmienić nazwy pliku wyjściowego. Jedynym sposobem wpływania na nazwę pliku wyjściowego jest zastosowanie dyrektywy {$E}, ale kontroluje ona jedynie rozszerzenie wyjścia, które nie jest tym, czego potrzebujesz.

Aktualizacja

Dzięki @TOndrej dla wskazując dyrektywy $LIBSUFFIX. Wydaje się, że nie można tego zmienić za pomocą opcji projektu IDE dla bibliotek, chociaż istnieje takie wsparcie dla pakietów. Jednak faktycznie działa, gdy jest zawarty w kodzie źródłowym twojego pakietu. Dołącz to do pliku biblioteki .dpr.

{$IFDEF WIN64} 
    {$LIBSUFFIX '64'} 
{$ENDIF} 

ta nie ma żadnego wpływu na projekty, które produkują pliki wykonywalne (tj VCL aplikacje, usługi etc.) i tak uważam, że jedynym rozwiązaniem w takich przypadkach jest działanie post-build.

+0

Dziękuję Tobie i TOndrej za wysiłek. –

+0

Dowolna szansa na nazwy wykonywalne?Podobnie jak Project32.exe i Project64.exe –

1

Można również użyć zdarzenia budowania, aby zmienić nazwę pliku wykonywalnego. W przypadku po kompilacji w opcjach projektu, można zrobić coś takiego:

ren $(OUTPUTPATH) $(OUTPUTNAME)$(Platform).exe 

To dałoby ci coś takiego:

ExampleProgramWin64.exe 

lub

ExampleProgramWin32.exe 

To znaczy, że nie może jednak debugować, ponieważ IDE nie wie, że została zmieniona, więc może lepiej jest zrobić kopię.

copy $(OUTPUTPATH) $(OUTPUTDIR)\$(OUTPUTNAME)$(Platform).exe 
Powiązane problemy