[C/C++] MySQL komplett statisch?

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von roYal, 16. Juni 2010 .

  1. 16. Juni 2010
    MySQL komplett statisch?

    Zur Zeit benutze ich den MySQL++ Wrapper der auch funktioniert, jedoch nervt mich, dass ich immer die mysqlpp.dll mitliefern muss. (Es handelt sich um folgendes Paket: MySQL++).

    Gibt es eine Möglichkeit, das ganze komplett statisch zu linken?

    Gracias!
     
  2. 16. Juni 2010
    AW: MySQL komplett statisch?

    Jo das geht, du wirst nur die Bibliothek selber (statisch) compilen müssen, danach kannst du ohne Probleme statisch gegen sie linken.
     
  3. 16. Juni 2010
    AW: MySQL komplett statisch?

    Jap, das Problem ist aber, dass ich nicht so recht weiß wo ich in diesem Projekt anfangen soll. MySQL++ hat 42 Subprojekte, einige sind auf Anwendung (EXE) eingestellt, andere auf DLL. Muss ich das alles auf LIB umstellen?

    Edit: Habe nun mal das "mysql++" Projekt auf LIB gestellt. Nun erscheinen mehrere hundert Linker Error :/

    Gracias!
     
  4. 16. Juni 2010
    AW: MySQL komplett statisch?

    Vielleicht kann dir das weiterhelfen., wenn du VS 2008 nutzt

    How to build Mysql++ from source in Visual Studio 2008 | Alex Stanhope

    greez
     
  5. 16. Juni 2010
    AW: MySQL komplett statisch?

    Yep, damit kann man die dynamische und statische Komponente linken (problemlos).
    Jedoch möchte ich gerne eine komplett statische Komponente haben, so, dass ich die DLL nicht mehr brauche.

    Gracias!
     
  6. 16. Juni 2010
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: MySQL komplett statisch?

    Hier, static build mit vc2010 und MySQL 5.1.4:
    No File | www.xup.in

    Aber MySQL ist weiterhin dynamisch gelinkt.

    P.S.: Weil mysql++ unter LGPL steht musst du dein Programm ab sofort open source machen.
     
  7. 16. Juni 2010
    AW: MySQL komplett statisch?

    Genau, außer du linkst dynamisch, dann kannst dus Closed-Source halten. Ist so eine Eigenart von der LGPL
     
  8. 16. Juni 2010
    AW: MySQL komplett statisch?

    Das heißt, die libmysql.dll muss trotzdem mitgeliefert werden?

    Jap, das weiß ich Ist sowieso schon der Fall da ich andere OS Komponenten benutze (mit GPLv3).

    Danke! Hast du das selber erstellt? Wenn ja, ist das viel Arbeit? Ich habe es probiert aber einfach nicht hingekriegt. Eine Erklärung wäre Nett

    Gracias
     
  9. 17. Juni 2010
    AW: MySQL komplett statisch?

    Hi..
    Jetzt gibt es schon wieder Probleme: Die Specialized SQL Structures funktionieren nicht. ( 5. )
    Problem ist, dass mehrere Linker-Error erscheinen. Habe aber gegen die mysqlpp.lib gelinkt, ebenso (testweise) gegen libmysql.lib. Standardbibliothek wird nicht ignoriert, trotzdem diese komischen Fehler?!

    Code:
    error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) const std::basic_ostream<char,struct std::char_traits<char> >::`vftable'" (__imp_??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@)".
    error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: __thiscall std::basic_ostream<char,struct std::char_traits<char> >::basic_ostream<char,struct std::char_traits<char> >(enum std::_Uninitialized,bool)" (__imp_??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@_N@Z)".
    error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: class std::locale __thiscall std::basic_ios<char,struct std::char_traits<char> >::imbue(class std::locale const &)" (__imp_?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QAE?AVlocale@2@ABV32@@Z)".
    error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: class std::basic_ostream<char,struct std::char_traits<char> > & __thiscall std::basic_ostream<char,struct std::char_traits<char> >::write(char const *,int)" (__imp_?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@PBDH@Z)".
    error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) protected: void __thiscall std::basic_ios<char,struct std::char_traits<char> >::init(class std::basic_streambuf<char,struct std::char_traits<char> > *,bool)" (__imp_?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IAEXPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z)".
    error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: class std::basic_ostream<char,struct std::char_traits<char> > * __thiscall std::basic_ios<char,struct std::char_traits<char> >::tie(void)const " (__imp_?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ)".
    error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) protected: __thiscall std::basic_ios<char,struct std::char_traits<char> >::basic_ios<char,struct std::char_traits<char> >(void)" (__imp_??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ)".
    error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: class std::basic_streambuf<char,struct std::char_traits<char> > * __thiscall std::basic_ios<char,struct std::char_traits<char> >::rdbuf(void)const " (__imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ)".
    error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: void __thiscall std::basic_ios<char,struct std::char_traits<char> >::setstate(int,bool)" (__imp_?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z)".
    error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: virtual __thiscall std::basic_ios<char,struct std::char_traits<char> >::~basic_ios<char,struct std::char_traits<char> >(void)" (__imp_??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ)".
    error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: class std::basic_ostream<char,struct std::char_traits<char> > & __thiscall std::basic_ostream<char,struct std::char_traits<char> >::flush(void)" (__imp_?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ)".
    error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: virtual __thiscall std::basic_ostream<char,struct std::char_traits<char> >::~basic_ostream<char,struct std::char_traits<char> >(void)" (__imp_??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UAE@XZ)".
    Bin echt dankbar für jegliche Hilfe :]

    Gracias!
     
  10. 17. Juni 2010
    AW: MySQL komplett statisch?

    Hi.
    Bringt nichts (libcmt.lib). Die Errors kommen ja auch von der C++ STL oder nicht?

    Gracias
     
  11. 17. Juni 2010
    AW: MySQL komplett statisch?

    Nutzt du meine lib (ja, hab ich auf die schnelle nach der Anleitung von cable kompiliert) und hast kein VC2010? Dann wäre klar, warum die Fehler kommen.
     
  12. 17. Juni 2010
    AW: MySQL komplett statisch?

    Hi.
    Sowohl mit deiner Binary wie auch mit meiner kompilierten (mit 2008) kommen die selben Linking-Errors. Daran liegt es also nicht!

    Gracias!
     
  13. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.