开发者

Shared objects and inclusion without installation in C++ under linux

I'm writing a program that has two libraries that I need to use: v8, and v8-juice. Unfortunately, v8-juice can't be compiled as a static library due to some stuff it does with templates. There's some other quirks with it that require v8 to be compiled as a shared object as well.

So, when I compile my program, I end up having two shared objects that are needed for the executable to run. My question is, is there a way I can include these shared objects without installing them under linux? Sorry if it's a newbish开发者_Go百科 question, I'm fairly new to C++.


Shared libraries can be in the same folder as your executable. man ld.so:

   $ORIGIN and rpath

   ld.so  understands the string $ORIGIN (or equivalently ${ORIGIN}) in an
   rpath specification (DT_RPATH or DT_RUNPATH) to mean the directory con-
   taining  the  application  executable.  Thus, an application located in
   somedir/app could be compiled with gcc  -Wl,-rpath,'$ORIGIN/../lib'  so
   that  it  finds  an  associated shared library in somedir/lib no matter
   where somedir is located in the directory hierarchy.  This  facilitates
   the  creation  of  "turn-key"  applications  that  do  not  need  to be
   installed into special directories, but can instead  be  unpacked  into
   any directory and still find their own shared libraries.
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜