XuvTools is developed in a cooperative effort from:
  • Chair of Pattern Recognition and Image Processing [www]
  • Friedrich Miescher Institute for Biomedical Research [www]
  • Center for Biological Systems Analysis [www]
 

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
devel:collection_development_problems [2010/10/07 00:15]
mario added linking comments
devel:collection_development_problems [2010/10/09 13:24]
mario added QT libpng warning
Line 31: Line 31:
 A commonly reoccuring topic is linkage: static versus dynamic. XuvTools links all libraries statically (except for JVM, which is not available statically). Here is a collection of facts to start with: A commonly reoccuring topic is linkage: static versus dynamic. XuvTools links all libraries statically (except for JVM, which is not available statically). Here is a collection of facts to start with:
   * mixing dynamic and static linkage is not a good idea. Each dynamic object will contain a copy of all static libs its linked against, so you can have a (different) libpng.a in every dll and the executable. What is worse: when throwing exceptions that are defined in static code, multiple instances exist, so the matching (=catching) might fail.   * mixing dynamic and static linkage is not a good idea. Each dynamic object will contain a copy of all static libs its linked against, so you can have a (different) libpng.a in every dll and the executable. What is worse: when throwing exceptions that are defined in static code, multiple instances exist, so the matching (=catching) might fail.
-  * when statically ​linking QT, it can't use plugins (no jpeg, mng, and others) +  * when linking QT staticallysome problems arise: 
-  * when dynamically ​linking QT, it needs all system-libraries available at compile-time. Since QT links against libpng, which is compiled using qmake, that is a cat-tail-problem.+    * static linked QT can't use plugins (no jpeg, mng, and others) 
 +    * on MacOS, one can not build x86_64 (Cocoa) QT statically 
 +  * when linking QT dynamicallyseveral issues arise: 
 +    * dynamic QT requires its dependency-libraries available at compile-time. Since QT links against libpng, which is compiled using qmake, that is a cat-tail-problem. 
 +  * dynamic linking on Windows is a big problem: 
 +    * libraries need to export symbols, else the *.lib import library file is missing. E.g., libpng and zlib can not easily be compiled dynamically on Windows using the qmake-based build system!
  
 +==Nokia QT and libpng==
 +QT requires to be compiled with (some) qt library enabled, else it will not be able to load the default icons (file browser etc.). If compiling QT 4.6.3 with -qt-libpng, it will still pick up the png.h from /​usr/​include,​ in case it is installed. This can lead to library confusion of the following form:
 +<​code>​
 +libpng warning: Application was compiled with png.h from libpng-1.2.40
 +libpng warning: Application ​ is  running with png.c from libpng-1.4.4
 +</​code>​
  
  
devel/collection_development_problems.txt · Last modified: 2010/10/09 13:24 by mario
Contact: admin(a)xuvtools.org