>> Sorry, I am stuck on this... >> >> When it comes to dynamically loaded shared libs that are required at link >> time, I can not figure out the trick of completely removing hard-coded paths >> from my Qt Creator project build environment. Setting LD_LIBRARY_PATH under >> the Qt Project Build Environment to a relative path works fine for building >> / linking. Example: >> >> LD_LIBRARY_PATH=/opt/qtsdk-2010.02/lib/qtcreator:/home/esutton/projects/myproject/guiproject/../../lib >> >> >> Question: How can I replace the base part of the relative path with a >> variable? >> >> Replacing with $(PWD), does not work. Apparently at the build environment >> stage, PWD is set to the qmake working directory of >> "/opt/qtsdk-2010.02/qt/bin" >> >> LD_LIBRARY_PATH=/opt/qtsdk-2010.02/lib/qtcreator:$(PWD)/../../lib >> >> >> >> Can a variable added to the Qt project file be referenced in the Qt project >> Build Environment ? >> >> I tried adding this to my Qt Project File: >> >> MYLDLIBPATH = $$PWD/../../lib >> message(MYLDLIBPATH == $$MYLDLIBPATH) >> >> and adding a reference to this variable in the Qt project Build Environment: >> >> LD_LIBRARY_PATH=/opt/qtsdk-2010.02/lib/qtcreator:$(MYLDLIBPATH) >> >> This does *not* work even though the qmake message displays the desired path: >> >> Project MESSAGE: MYLDLIBPATH = >> /home/esutton/projects/myproject/guiproject/../../lib >> >> I am building under Red Hat Enterprise Linux 5.x. I do not want to use >> rpath because I want to avoid hard-coded paths in released binaries. My >> goal is to retrieve source code from the repository and to build a release >> using: >> >> qmake myproject.pro >> make >> >> > > I found a solution myself for linking to shared libraries. Use rpath-link ( > Just like the linker warning had informed me ;-) > > If I understand it correctly, rpath-link, tells the linker where to look for > run-time shared libs to link with and unlike rpath will not hard-code any > run-time paths into my binaries. > > LIBS += -L../../lib > #Note the character following the -Wl switch is a lower-case 'L' > LIBS += -Wl,-rpath-link,$$PWD/../../lib > LIBS += -lmysharedlib > > -Ed
While -rpath-link solves the build environment challenge, I still have the same problem for the Qt Project Run Environment settings in setting LD_LIBRARY_PATH. Can you pass a Qt project path variable to the Qt Project Run Environment settings to use for setting the LD_LIBRARY_PATH ? Basically so any developer could get from version control, build, and debug, without having to edit any Qt project settings. Thanks in advance, -Ed _______________________________________________ Qt-creator mailing list [email protected] http://lists.trolltech.com/mailman/listinfo/qt-creator
