You can set the rpath with a $ORIGIN value. See
http://stackoverflow.com/questions/2497192/how-can-i-set-where-a-qt-app-finds-a-qt-module/2497601#2497601

  Bradley


On Mar 30, 9:29 am, Ed Sutton <[email protected]> wrote:
> >> 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/myp
> >>  roject/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

_______________________________________________
Qt-creator mailing list
[email protected]
http://lists.trolltech.com/mailman/listinfo/qt-creator

Reply via email to