Buduję bibliotekę C++ (zestaw nagłówków, bibliotek importu i bibliotek DLL). Chcę, aby korzystanie z tej biblioteki było jak najprostsze dla każdego programisty, który chce z niej korzystać. Szczególnie nie chcę, aby konsumenci tej biblioteki musieli się martwić o zmianę ścieżek nagłówka, ścieżek bibliotek i bibliotek łączy ręcznie dla wszystkich różnych konfiguracji ich projektu (Debug | Release i x86/x64/ARM). Wiem, że mogę to zrobić za pomocą arkuszy właściwości. W tym celu utworzyłem 6 różnych arkuszy właściwości (po jednym dla każdej konfiguracji). Każdy arkusz wygląda jak poniżej (wymieniając tylko x86 | wersję Debug załóżmy, że INCLUDEPATH makra i LIBPATH są prawidłowo zdefiniowane):Tworzenie arkusza właściwości Visual Studio w celu ułatwienia korzystania z biblioteki C++
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PropertySheetDisplayName>MyCPPLib, 1.0</_PropertySheetDisplayName>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$INCLUDEPATH;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<AdditionalLibraryDirectories>$(AdditionalLibraryDirectories);$LIBPATH\x86\Debug</AdditionalLibraryDirectories>
<AdditionalDependencies>MyCPPLib.lib;$(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
</Project>
Chcę wiedzieć, czy jest możliwe, aby utworzyć tylko jeden plik rekwizyty, które mogą zajmiesz się wszystkimi 6 konfiguracjami opartymi na jakiejkolwiek aktywnej konfiguracji użytkownika? Jak by ten plik wyglądał?
Należy pamiętać, że jest możliwe (a nawet prawdopodobne), że ktoś zdefiniuje więcej niż standardowe konfiguracje "Release" i "Debugowanie". Znam kilka projektów, które definiują niestandardowe konfiguracje w celu rozróżnienia między budowaniem biblioteki statycznej a budowaniem pliku .dll, na przykład. –
@BillyONeal Pewnie. Byłbym szczęśliwy, gdyby poprzeć domyślne dwie "Debugowanie" i "Release" dla mojej biblioteki. Jestem nowy w tym arkuszu właściwości. Czy wiesz, jak by to wyglądało w przypadku tych sześciu konopi? –
Hmm, coś takiego zrobiłem jakiś czas temu. Spróbuję pamiętać, żeby jutro to sprawdzić. Kluczem do zrozumienia jest to, że są to po prostu pliki MSBuild. I możesz zrobić warunki w zwykłym MSBuildzie w porządku (ale nie pamiętam składni off-hand). Zauważyłem, że moje arkusze właściwości stały się o wiele prostsze, gdy zacząłem traktować konfigurację kompilacji (debugowanie/wydawanie) oddzielnie od platformy, a nie głupie "łączenie obu w jeden ciąg, a następnie używanie tego do określania ustawień kompilacji", która istnieje w plikach projektu VS domyślnie. :) – jalf