Visual Studio 2010 treibt mich mit den Includes in den Wahnsinn



  • Ich verzweifel. Seit 2 Stunden wurste ich hier rum und nichts funktioniert.

    Folgende Situation:

    main.cpp:

    #include <boost/lambda/lambda.hpp>
    #include <iostream>
    #include <iterator>
    #include <algorithm>
    
    int main()
    {
        using namespace boost::lambda;
        typedef std::istream_iterator<int> in;
    
        std::for_each(
            in(std::cin), in(), std::cout << (_1 * 3) << " " );
    }
    

    Funktioniert. Habe ich aus dem Boost-Beispiel übernommen.

    typedef.h aus dem gleichen Projekt!!!

    #pragma once
    #include <boost/filesystem/path.hpp>
    #include <string>
    
    namespace Eng1ne {
    	namespace System {
    		typedef std::wstring string;
    		typedef boost::filesystem::path filename;
    	}
    }
    

    Da bietet er mir sogar die Autovervollständigung beim Schreiben des Includes an und listet alles fein säuberlich auf. Will ich das ganze jedoch compilen:

    \eng1ne\typedef.h(2): fatal error C1083: Datei (Include) kann nicht geöffnet werden: "boost/filesystem/path.hpp": No such file or directory

    Was zur Hölle?
    Warum geht es in der main.cpp und nicht in der typedef.h, obwohl beide im gleichen Projekt mit den gleichen Includes sind?!
    Packe ich #include <boost/filesystem/path.hpp> in die main.cpp, meckert er nicht.



  • OK, ich habe die Lösung bei http://stackoverflow.com/questions/2441320/vc9-c1083-cannot-open-include-file-boost-after-trying-to-abstract-an-includ gefunden.

    Meine Solution besteht aus 2 Projekten, bei dem das 2., nicht nicht aufgeführte Projekt, die typedef.h includiert. Erst als ich beim 2. Projekt ebenfalls Boost in die Includes gepackt habe, klappte alles.

    Das 2. Projekt verwendet augenscheinlich kein Boost - Stimmt ja aber garnicht, ich habe es ja nur mittels dem typedef "verschleiert" 🙂


Anmelden zum Antworten