$(SolutionDir) und $(ProjectDir) in MSVC2010



  • Ich hab ein Problem mit den Variablen $(SolutionDir) und $(ProjectDir) in den Projekt-Properties für MSVC 2010. Ich hab mein Projekt mitsamt einer boost-Installation auf einem USB Stick, da ich auf verschiedenen Rechnern daran arbeite - alle mit MSVC2010 ausgestattet.
    Meine (relevante) Verzeichnis-Struktur auf dem Stick:

    FooBar
      +-- src
           +-> foobar.sln
           +-- cpp
                +-- test
                     +-- interface_tests
                          +-> interface_tests.vcxproj
    lib
      +-- boost_1_46_1 
           +-- boost (headers)
           +-- lib (*.lib, *.dll)
    

    in interface_tests würde ich gerne boost.unit_test benutzen. Ich hab also im MSVC auf dem interface_tests Projekt unter C/C++.General.AdditionalIncludeDirectories ein $(SolutionDir)..\..\lib\boost_1_46_1\ angegeben und das gleiche mit einem lib\ am Ende unter AdditionalLibraryDirectories.
    Der Erfolg war mäßig: Die IDE kreidet mir den #include <boost/test/unit_test.hpp> an (auch mit ""), der Linker findet die Lib nicht.
    Benutze ich statt dessen $(ProjectDir)..\..\..\..\..\lib\boost_1_46_1\ und das Gleiche mit lib hintendran für die libs, findet der Linker zwar die Lib, aber die IDE kreidet mir immernoch den nicht gefundenen Include an. Beim Build findet der PP die Header allerdings.

    Weiß jemand Rat, wie ich das mit dem $(SolutionDir) (zur Not auch mit dem $(ProjectDir) noch richtig hinbiegen kann? Dass die IDE den #include nicht findet ist nervig, weil dann nichts aus boost erkannt wird.

    Ich verwende die Variablen übrigens, weil der USB-Stick je nach Rechner auf uterschiedlichen Laufwerken gemounted wird (da kann ich nichts dran drehen).



  • Das mit dem angemoserten #include hat sich erledigt, MSVC2010 express hat mit den solution foldern der utlimate-edition mehr probleme als gedacht 😞


Log in to reply