Compiling with multiple versions of a library


 
Thread Tools Search this Thread
Operating Systems Linux Compiling with multiple versions of a library
# 1  
Old 03-08-2010
Compiling with multiple versions of a library

Hello!

I have a set of headers and libraries I want to use but they are mixed with ones I do not want to use. They are part of some official stuff, so I cannot modify them while begging and pleading for weeks.

These headers and libraries are located here
/long/official/path/to/include
/long/official/path/to/lib

respectively

Inside the "include" directory there is another directory "goodies" which is outdated. I have a private version of goodies located
/latest/greatest/include/goodies
that I compiled to produce
/latest/greatest/lib/libGoodies
but I had to compile this against the /long/official/path/to/include headers.

Now I want to use all of this to compile a program. I want all of headers and libs in /long/official/path/to/ but I want goodies from /latest/greatest/

When I compile I use
-I/latest/greatest/include -L//latest/greatest/lib/ -lGoodies -I/long/official/path/to/include -L /long/official/path/to/lib -lThis -That -lLotsMore

and it complains that a function in /latest/greatest/lib/libGoodies.so has undefined references which are files that are located in /long/official/path/to/include

I tried
-I/latest/greatest/include -I/long/official/path/to/include -L/latest/greatest/lib/ -lGoodies -L /long/official/path/to/lib -lThis -That -lLotsMore
but the errors persist...

If you have followed this far, can you please tell me how to fix this. Its driving me NUTS!!!

Thanks!
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Compiling GCC 6.3.0 - Error with Library

First of all -- thanks for being patient with me. I hope I'm submitting this correctly. Also I haven't done UNIX Admin since the early 1990's. I'm actually a DBA. But, since I'm the one in the office with the UNIX experience, I'm the SA. I haven't been able to compile GCC 6.3.0 which I need... (9 Replies)
Discussion started by: PJ_Namias
9 Replies

2. UNIX for Advanced & Expert Users

How does extundelete handle multiple versions of the same inode?

Hi, I noticed a weird behavior in extundelete way to choose the filename to which it will restore a given inode. Here is an example : root@rescue:~# for after in '' 0 740 741 $(date -d 'now - 1 year' +%s); do rm -rf RECOVERED_FILES/; echo -e "$(date -d@$after 2> /dev/null || echo No... (4 Replies)
Discussion started by: chebarbudo
4 Replies

3. Red Hat

Installing multiple versions of same package.

I need to install a older version of gnupg but not delete the current version of gnup2 on RHEL 6.4. What would be the correct syntax to install this? Tried to install and relocate it and still getting conflicts. aXXXXXX:root# rpm -ivh /root/rpmbuild/RPMS/x86_64/gnupg-1.4.16-1.x86_64.rpm... (2 Replies)
Discussion started by: soupbone38
2 Replies

4. Programming

Trouble compiling program using the readline library.

Hi: in the info page for readline library I read -- Function: void rl_variable_dumper (int readable) Print the readline variable names and their current values to `rl_outstream'. If READABLE is non-zero, the list is formatted in such a way that it can be made part of an... (1 Reply)
Discussion started by: stf92
1 Replies

5. UNIX for Dummies Questions & Answers

Patches - why multiple versions?

Hi just wondering really ...... I've done a showrev -p and am somewhat surprised to see apparently multiple different versions of the same patches ...... 112161-02 112161-03 112161-04 It's my understanding that a newer revision of a patch , -04 in this case supercedes all previous... (2 Replies)
Discussion started by: Martincorneuk
2 Replies

6. Programming

Library problem - not compiling in c

Ok I was trying to test if I installed correctly gsl, I followed the INSTALL file and still I don't know what is wrong. Here is a sample code to test gel,I got it from Random Number Generator Examples - GNU Scientific Library -- Reference Manual (note: made a few changes in the code) #include... (2 Replies)
Discussion started by: joseamck
2 Replies

7. UNIX and Linux Applications

install multiple versions of firefox in linux

Since apt-get and yum won't let you install multiple versions of firefox I will explain how to here. 1. Go to this page and decide which version of firefox you want. ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/ I used this one. ... (0 Replies)
Discussion started by: cokedude
0 Replies

8. UNIX for Dummies Questions & Answers

Using multiple java versions in unix

Hello we are using java 1.2 in our shell / env it is also set in the main JAVA_HOME env var , but we have also java 1.4 installed , now we need to use new application that uses only java1.4 is there any way to point this specific application to use java 1.4 without changing the global... (2 Replies)
Discussion started by: umen
2 Replies

9. Shell Programming and Scripting

How to manage multiple versions of a set of shell and SQL script utilities

Hi all --- I have the need to manage multiple versions of a set of utility scripts -- both shell and SQL and other .dat files. I am wondering if anyone out there knows of a good way to "PATH" to SQL and text files in a way similar to how PATH facilitates finding executables in a pre-specified... (2 Replies)
Discussion started by: DennisB
2 Replies
Login or Register to Ask a Question
USELIB(2)						     Linux Programmer's Manual							 USELIB(2)

NAME
uselib - load shared library SYNOPSIS
#include <unistd.h> int uselib(const char *library); Note: No declaration of this system call is provided in glibc headers; see NOTES. DESCRIPTION
The system call uselib() serves to load a shared library to be used by the calling process. It is given a pathname. The address where to load is found in the library itself. The library can have any recognized binary format. RETURN VALUE
On success, zero is returned. On error, -1 is returned, and errno is set appropriately. ERRORS
In addition to all of the error codes returned by open(2) and mmap(2), the following may also be returned: EACCES The library specified by library does not have read or execute permission, or the caller does not have search permission for one of the directories in the path prefix. (See also path_resolution(7).) ENFILE The system-wide limit on the total number of open files has been reached. ENOEXEC The file specified by library is not an executable of a known type; for example, it does not have the correct magic numbers. CONFORMING TO
uselib() is Linux-specific, and should not be used in programs intended to be portable. NOTES
This obsolete system call is not supported by glibc. No declaration is provided in glibc headers, but, through a quirk of history, glibc versions before 2.23 did export an ABI for this system call. Therefore, in order to employ this system call, it was sufficient to manually declare the interface in your code; alternatively, you could invoke the system call using syscall(2). In ancient libc versions, uselib() was used to load the shared libraries with names found in an array of names in the binary. Since libc 4.3.2, startup code tries to prefix these names with "/usr/lib", "/lib" and "" before giving up. In libc 4.3.4 and later these names are looked for in the directories found in LD_LIBRARY_PATH, and if not found there, prefixes "/usr/lib", "/lib" and "/" are tried. From libc 4.4.4 on only the library "/lib/ld.so" is loaded, so that this dynamic library can load the remaining libraries needed (again using this call). This is also the state of affairs in libc5. glibc2 does not use this call. Since Linux 3.15, this system call is available only when the kernel is configured with the CONFIG_USELIB option. SEE ALSO
ar(1), gcc(1), ld(1), ldd(1), mmap(2), open(2), dlopen(3), capabilities(7), ld.so(8) COLOPHON
This page is part of release 4.15 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/. Linux 2017-09-15 USELIB(2)