I recently upgraded to 12.04 and now see two library directories on my system, /usr/lib/ and /usr/lib/i386-linux-gnu. The former is about 30% bigger than the latter. When I switched to this new Ubuntu version, my build started to break as qmake now links against /usr/lib/i386-linux-gnu, so any libraries I were referencing residing in /usr/lib are now missing. For example, I can include -lGL and -lpython as they are both in /usr/lib/i386-linux-gnu, but when I include -lassimp it fails as the build only includes this new multiarch dir -L/usr/lib/i386-linux-gnu.
$ qmake-qt4 --version QMake version 2.01a Using Qt version 4.8.1 in /usr/lib/i386-linux-gnu $ qmake -query QT_INSTALL_PREFIX:/usr QT_INSTALL_DATA:/usr/share/qt4 QT_INSTALL_DOCS:/usr/share/qt4/doc QT_INSTALL_HEADERS:/usr/include/qt4 QT_INSTALL_LIBS:/usr/lib/i386-linux-gnu QT_INSTALL_BINS:/usr/bin QT_INSTALL_PLUGINS:/usr/lib/i386-linux-gnu/qt4/plugins QT_INSTALL_IMPORTS:/usr/lib/qt4/imports QT_INSTALL_TRANSLATIONS:/usr/share/qt4/translations QT_INSTALL_CONFIGURATION:/etc/xdg QT_INSTALL_EXAMPLES:/usr/lib/qt4/examples QT_INSTALL_DEMOS:/usr/lib/qt4/demos QMAKE_MKSPECS:/usr/share/qt4/mkspecs QMAKE_VERSION:2.01a QT_VERSION:4.8.1 I know there was a bit of work to get cmake compatible with the multiarch specification, but haven't heard much about qmake, but I was wondering if I really had to hardcode /usr/lib into my CXX flags. I just want to know if this is the required configuration when using qmake now or if there's something incorrect on my system and there's a more elegant way to configure qmake system-wide to use both directories... so this... g++ -L/usr/lib/i386-linux-gnu ... looks like this... g++ -L/usr/lib/i386-linux-gnu -L/usr/lib ... I did find the following link, but it doesn't tell me much about what happened in the transition. http://wiki.debian.org/QtMultiarchTransition I tried a hello-world example in cmake and saw the following output, which seems to include both directories correctly. CMakeCXXCompiler.cmake:SET(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/i686-linux-gnu/4.6;/usr/lib/i386-linux-gnu;/usr/lib;/lib/i386-linux-gnu;/lib") However, in my hello-world example of qmake and my current project, I get the following: g++ -Wl,-O1 -o foo -L/usr/lib/i386-linux-gnu -lQtGui -lQtCore -lpthread Like I said, the majority of my libraries are still in /usr/lib and now qmake doesn't link against them by default. Is this a bug? Is this just an accepted consequence of multiarch? Or is there something I need to configure that wasn't handled properly in my upgrade? -- ubuntu-devel mailing list [email protected] Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
