Announcement

Collapse
No announcement yet.

Linker versucht ältere Lib Datei aufzurufen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Linker versucht ältere Lib Datei aufzurufen

    Hallo Community,

    ich arbeite derzeit mit Visual Studio 2008. Jetzt habe ich die älteren Boost Bibliotheken (1.46.1) durch die Version 1.47.0 ersetzt. Die ganzen Pfade, unter Projekte und Projektmappen, in Visual Studio zu den neu erstellten lib und dll Dateien habe ich geändert. Nun wollte ich zum Test ein kleines Projekt von einer Webseite erstellen.

    Code:
    #include <boost/asio.hpp> 
    #include <iostream> 
    
    void handler(const boost::system::error_code &ec) { 
      std::cout << "5 s." << std::endl; 
    } 
    
    int main() { 
      boost::asio::io_service io_service; 
      boost::asio::deadline_timer timer(io_service, boost::posix_time::seconds(5)); 
      timer.async_wait(handler); 
      io_service.run(); 
    }
    Nun meldet VS2008 den folgenden Linker Fehler:
    Code:
    LINK : fatal error LNK1104: Datei "libboost_system-vc90-mt-gd-1_46_1.lib" kann nicht 
    geöffnet werden.
    Ich finde allerdings keine gesetzten Pfade dazu, auch in den Projekteigenschaften nicht. Warum will er darauf zugreifen obwohl es nirgends angegeben oder eingetragen ist?

    Ich weiß leider nicht was ich noch abändern muss.
    Kann mir da jemand einen Tipp geben?

    UPDATE:
    Nachdem ich mehr oder weniger kurz nach dem Eröffnen dieses Threads und der Erkenntnis das derzeit keiner Helfen kann, Visual Studio beiseitegelegt hatte. Habe ich vor ein paar Tagen wieder damit angefangen. Mittlerweile mit der Version 1.49.0. Der Fehler war aber derselbe.^^
    Allerdings konnte ich nun in Erfahrung bringen, dass der Fehler durch das Auto-Linking von boost verursacht wird.

    Daher habe ich dieses deaktiviert und die aktuellen libs von Hand hinzugefügt.

    Code:
    #define BOOST_ALL_NO_LIB 1
    #pragma comment(lib, "libboost_filesystem-vc90-mt-gd-1_49.lib")
    #pragma comment(lib, "libboost_system-vc90-mt-gd-1_49.lib")
    Vorher hatte ich noch mit
    Code:
    #define BOOST_LIB_DIAGNOSTIC 1
    geschaut welche libs alle gelinkt werden, bzw. versucht.

    Allerdings empfinde ich das eher als Notlösung. Ich frage mich immer noch wie und warum eine neu kompilierte Version auf ältere libs zugreifen will.

    P.S.: Ich hoffe durch das Editieren dieses Betrages wird dieser nicht als neu markiert. Falls dies doch so sein sollte, möchte ich mich gleich mal entschuldigen. Ich wollte aber eine eventuelle "Lösung" nicht für mich behalten.
    Zuletzt editiert von Squall; 22.03.2012, 10:57. Reason: UPDATE
Working...
X