General :: Using A Non-standard Library Path When Compiling Software?
Jan 10, 2010
I was wondering if there is an argument I can pass to the configuration file to have it use a library from a non-standard path to compile with - for example I would like it to use my perl located in /scratchbox/users/jeff91/usr/bin/perl instead of the standard /usr/bin/perl
The whole day was more or less spent reinstalling a basic Gnome Ubuntu system. Everything went swimmingly until I started with the XBMC part of the installation. After wrestling with PPAs and apt-get for hours I finally got it installed, but then it all turned awkward in a hurry. It simply refused to start up. I clicked the icon and nothing happened for a good few seconds. The screen then flickered black for an instant, but after that nothing. I started from a terminal and it showed an error message saying it couldn't import Python's os and shutil modules. I found that mighty strange since both modules are part of the Python Standard Library.
Finally, in a bizarre twist, it turns out this doesn't seem to be a XBMC problem, suddenly apt-get started complaining too. TL,DR: I (nor the system) can't import any Standard Library modules in Python in Ubuntu! Is this a path problem? Or have I actually managed to uninstall some vital python packages, if so which ones? I am running Ubuntu 10.10, but I don't think this is necessarily a Ubuntu specific problem. Here are some dumps to show the error messages: (I forgot to copy the XBMC error message, but it looked exactly the same as these below, i.e., it couldn't import the os module) First from apt-get:
Code:
tv@tv:/usr/lib$ sudo apt-get autoremove [sudo] password for tv: Reading package lists... Done Building dependency tree
I need to get the libstdc++.so.5 library ( on a computer with Fedora 8 and don't wonder why it's so ancient,-there is a good reason for it) but I don't have Internet access from that computer, so I can't get to the online repo's.
However, I do still have the installation disk, and I'm typing this from a computer (SuSE 10) that is half a meter from the Fedora box.
I tried the "ADD/REMOVE Software" option on the menu, but it keeps on looking for the online repo and then if it doesn't get it, it fails.
Is it possible to get this library from the installation disk. How? Could I download the single package from the online repo onto the SuSE machine and then move it to the Fedora machine? How do I then tell the Fedora machine to "incorporate" it.
I'm interested in modding an open-source turn based game called Advanced Strategic Command or ASC, but to do that I need bunch of libraries. Installing those libraries is very easy in linux, I know but the thing is I'm working with windows in which the building of the libraries is a bit more complex, as you probably know. One of those libraries is the ligsigc++, I'm using VC++ but haven't been successful in building the libsigc++ in VC++. I considered making my life easier with Cygwin (a unix shell for windows) and simply executing ./Configure, Make. I's worked like a charm and the library dll it produced is named cygsigc-2.0-0.dll which made me wonder is compiling a library in cygwin to be linked with VC++ perfectly ok? That is is there any difference in compiling in cygwin and VC++?
i'm using slackware 13.0 with glib2-2.18.4-i486-1 and gtk+2-2.14.7-i486-4 i need to install newer gtk+2, i've installed glib-2.25.7, but in my home directory, so how do i configure the gtk+2, so it points to the glib library path in my home directory. i've tried this command
I would like to set run time library path in my makefile, so that my exe should search run time libraries in that path when executed. How to set this in makefile?
I was have installed gcc and g++ both 4.4.3 Version They were working fine, but now they suddenly seem to have lost track. Both cant detect standard library files. not even iostream ,fstream. (i have already tried the .h variant) my /usr/local/include/ directory is empty, should not something be there.
I'm trying to learn how to cross-compile libraries (static and shared) and executables for the Blackfin + uClinux environment.At this point, I can successfully compile a stand-alone "Hello, world" but fail when trying to add a (static) library to the mix.Here's the source code I wrote:
I am trying to use the QT4 frontend of poppler library in my application so I need to compile the library.In its main directory ./configure can be run but I got
Code:
checking which font configuration to use... fontconfig checking for FONTCONFIG... no configure: error: Package requirements (fontconfig >= 2.0.0) were not met: No package 'fontconfig' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables FONTCONFIG_CFLAGS and FONTCONFIG_LIBS to avoid the need to call pkg-config.See the pkg-config man page for more details.
I have fontconfig installed (ubuntu):
2.8.0-2.1ubuntu3 (fontconfig)
However I have no idea where those flags are and what to set them to.
I have tried to compile several programs from source code and have into a similar error in each case. I try make the program and I get an error like: fail program confsdefs.h. Reading further into the log file, I see there is a long list of missing library files when I compile something like Samba 3.5.x:
[Code]...
I have searched for dependency information and used apt-get to add anything I can find. How can I identify and find the dependencies for source? I have checked the source documentation though typically does not list required packages. My other question is how to check the path used to locate the libraries? Given the length of the missing library list, I think the problem may be configuring make.
I am facing the following error while running SplitOff.exe in machine 172.24.130.245 : Error : ld.so.1: SplitOff.exe: fatal: libstdc++.so.2.10.0: open failed: No such file or directory.This file is avilabe in ap/local/lib path. how to include the path of exe in the ld library path [only System admin has permission]
I'm writing an application and want to make possible to compile it with or without an optional module. This module requires perl library to be compiled, so I want to check presence of it in 'autoconf'.
The problem exists because perl library is placed in 'non-standart' location itself (like a /usr/lib64/perl5/CORE/libperl.so). So when I try to run configure (with AC_CHECK_LIB or AC_SEARCH_LIBS), it cannot find and link libperl.so in its test.
Trying to pass ./configure CFLAGS=-L/usr/lib64/perl5/CORE/ or ./configure LDFLAGS=-L/usr/lib64/perl5/CORE/
How can I define a location to search for configure's tests?
I'm writing an application with a plugin architecture and would like modify (specifically add to) the dynamic library search path while the main executable is running.
The plugin paths are not known until the application is running so I can't set LD_LIBRARY_PATH ahead of time.
My understanding (although I haven't tested it) is that the executable will only parse the LD_LIBRARY_PATH once, early on, so modifying this environment variable at runtime will have no effect.
(Note - on Windows the solution is to modify the PATH environment variable)
I know it's possible to specify the full path to load a dynamic library, and this would work if the plugin(s) only had a single library to load, but some of them will have a bunch of libraries with their own inter-dependencies, so I'd like the plugin folder(s) to get added to the search path to pick up the dependant libs.
I am using json library for my application. I have mentioned the path where the library resides in the LD_LIBRARY_PATH. while compiling i have given the following commands.
gcc -o pafitest pafi_test_app.o -ljson
but still i am getting this following error.
/usr/bin/ld: cannot find -ljson collect2: ld returned 1 exit status
I need to install libssh2 on my CentOS 32bit server to get ssh2 extension of PHP working, after installation of this rpm, I still can't run "pecl install ssh2-beta" because it give me this error: configure: error: The required libssh2 library was not found. You can obtain that package from [URL] ERROR: `/tmp/tmp2ImZz1/ssh2-0.11.0/configure --with-ssh2=/usr' failed
I'm taking here about tins of directories, thousands of files. I'm looking to find a command that makes me able to move the results above to another path, and to create that path once it doesn't exist like below:
I have a program that takes a relative path as input appends it to a some path string to get the actual path.
Now all I can input is the relative path. So if I want to go one level above my input will be ../mypath.
If I know the depth of the path used internally, I can use .. as many times to go to the root directory and then give the absolute path. But suppose I do not know the depth of the directory, can I construct a relative path string such that it considers it as a relative path. One way could be to have enough .. in the path string so that I can force an absolute path for some maximum depth of path.
Is there some path string syntax that I am not aware of but can achieve this?
Experimenting with shell variables, accidentally deleted the path variable how could I return to the original path value. What kinds of problems will I have if I don't have a path variable.
I have a path c:windowsackup I need this string to be changed into /windows/back/up I used the command -bash-3.00$ echo windackup | sed 's/\//g' but the output is windbackup
prefix=user@my-server: find . -depth -type d -name .git -printf '%h�' | while read -d "" path ; do ( cd "$path" || exit $?
[code]....
How shall i go about changing the absolute path to relative path, so that /home/git/mirror/android/adb/ndk.git gets converted to /mirror/android/adb/ndk.git //echo <command> "$prefix$PWD.git" ?? - anything for relative path?
./configure script fails to configure libsf. Please check the following last few lines of configure script error.
But find command shows the following;
It seems the file libdb does exist. man dbopen displays man page for dbopen. I also tried to ln -s /usr/lib/libdb.a and libdb.so /lib dir but all were in vain.
I think that the solution is very simple, but I cannot reach this solution. I'm trying to build an B.so that uses A.so.
A.so is compiled using C; B.so is compiled using C++;
Inside "Aso.h" file I'had declared:
Code:
#ifdef __cplusplus extern "C" { #endif
[code]....
There's no error to compile that, this library seems to be compiled correctly, but using the "nm" command the Aso.so functions appear with "U" of undefined. Trying to build an executable using the Bso.so library, I got this error: /lib/../lib/libBso.so: undefined reference to `foo(int, int, int)' I think that to solve this problem it's only link the Aso.so with the .o files generated at the compilation phase of my Bso. Using the "ldd" command I'm able to see that Bso.so depends on Aso.so, so what am I missing?
I'm reading about shared, static, and dynamic libraries. What is SDL? Is it static, shared, or dynamic?
I always thought a library would be a lot of .h and .cpp files compiled separately into .o files and then if you compiled your own program you could use the -l parameter to link the library and it was all compiled together. Now I'm not so sure.
I don't even see any SDL .cpp files in my system anywhere. All I have are lots of SDL .h files in /usr/include/SDL and I don't really understand the code in them.
I'm making a wild guess here: SDL is a shared library. SDL itself is NOT compiled into my program, therefore SDL must be on any system my program tries to run on. When I compile and link SDL all it needs is the header files to know what SDL function and objects it can use. And then on every system it uses an already compiled SDL shared library thingy somewhere.
So... where is that part of SDL? All I can find are header files.
I'm thinking the advantage of shared libraries is that someone could say update SDL on their own system and take advantage of the new features without having to download new executables with the new version of SDL compiled into them for every program that uses SDL.
So if I'm making an editor and a game engine and they both use a lot of the same .cpp and .h files that I wrote and I'm tired of updating one and then the other and I need to turn them into a library, then a shared library might be kind of a silly solution. I could just make a static library. Right? Because it's not SDL. Nobody else is ever going to use this library.