Sponsored Content
Top Forums Programming How to make use others' C library installed not for the system-wide (Ubuntu/Linux)? Post 303043110 by GRMartin on Saturday 18th of January 2020 10:02:22 AM
Old 01-18-2020
Quote:
Originally Posted by yifangt
It seems to me that they are different names for the same thing, but I might be wrong.
3) My point is what the right way(s)---may not be the best way--- is to use them.
Can I ask in another way:
What is the best practice to use others library (static *.a and shared *.so) not installed system-wide in C programming? I may need to start a new thread before the topic is veered too far off.

Thank you so much for your time!

No, they are not at all the same thing. An archive is just that. A collection of object files that can be statically linked to your executable. Shared objects are dynamically linked at runtime. They are compiled with a flag that tells the compiler to generate position independent code. Here's what gcc docs have to say:


Code:
-fpic   Generate position-independent code (PIC) suitable for use in a shared library, if supported for the target machine.  Such code accesses all constant addresses through a global offset table (GOT).  The dynamic loader resolves the GOT entries when the program starts (the dynamic loader is not part of GCC; it is part of the operating system).  If the GOT size for the linked executable exceeds a machine-specific maximum size, you get an error message from the linker indicating that -fpic does not work; in that case, recompile with -fPIC instead.  (These maximums are 8k on the SPARC, 28k on AArch64 and 32k on the m68k and RS/6000.  The x86 has no such limit.)

Since archives are statically linked to your your code, it is no longer dependent on the object. With shared objects you remain dependent on the library.
This User Gave Thanks to GRMartin For This Post:
 

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

links working system wide

I have created symbolic links to several frequently used commands, for example: "lt" is a link to "ls -ltrgo|tail". What can I do to make these links available system-wide, or at least in the directories my coworkers are in most of the time? I have copied the link to several directories, and... (6 Replies)
Discussion started by: jpprial
6 Replies

2. UNIX for Advanced & Expert Users

System wide CDE setup

Does anyone know how to make system wide changes to the CDE's front panel icons? I dont know if it matters but im running Solaris 9. THanks (1 Reply)
Discussion started by: meyersp
1 Replies

3. UNIX for Dummies Questions & Answers

FIND function - system wide

Hi, I have a task to search for a file called 'Xstartup' in the whole system because there might be different versions of it which overrite eachother. Can anyone suggest a smart command to run this search ? The machine needs to scan every single folder beginning from root. Please help, I am... (5 Replies)
Discussion started by: DGoubine
5 Replies

4. Filesystems, Disks and Memory

How to mount/make a FAT system on Linux

Yea i was wondering how i would mount, and create a FAT directory that way i can save files in the FAT directory in a windows system and be able to access them on Linux systems. Or if there is any other way to share files between Linux and Windows. Any responds will help... thanks! (2 Replies)
Discussion started by: kyoist
2 Replies

5. Shell Programming and Scripting

system wide password change

Hello, I am new to shell scripting and I was trying to write a script that would force a system wide password change except for admins. I am having some trouble and any help that someone could give me would be greatly appreciated. I am trying to do it by using the UID as the marker for anyone... (6 Replies)
Discussion started by: kilemark
6 Replies

6. Linux

System wide find and sort

Hi, I need to look for a config file (ldap.conf) and pick the latest modified file. `locate` tells me there are many ldap.conf's, some in /etc, /usr, /home, etc. Is there some way I can sort them by last modified time via bash? I was thinking maybe I could pipe the output of `locate` to `ls... (4 Replies)
Discussion started by: Housni
4 Replies

7. Linux

How to run User-mode Linux installed with synaptic package manager in Ubuntu 10.10

I have installed user-mode linux kernel in Ubuntu 10.10 with the help of Synaptic package manager. But I'm not getting how to run it. If we install it manually, we've to run it using the executable binary file. But here, I'm unable to locate any such file. Please help.... Thanking You.... ... (0 Replies)
Discussion started by: rohitadeshmukh1
0 Replies

8. Red Hat

Changing system-wide for umask

Hi everybody, How can I change the default UMASK for non root users, e.g. I want the umask for every new created user will be 0044. Thanks (6 Replies)
Discussion started by: leo_ultra_leo
6 Replies

9. Shell Programming and Scripting

System-wide search

When looking for wherever a program or a filename appears in the system, a short scrip is "findinner" which another script calls with a long parameter list consisting of path names ending with ".sh" or ".menu". "findinner" looks like this: # If not .savenn file, show name and result of grep. #... (4 Replies)
Discussion started by: wbport
4 Replies
BACKPORTPACKAGE(1)					      General Commands Manual						BACKPORTPACKAGE(1)

NAME
backportpackage - helper to test package backports SYNOPSIS
backportpackage [additional options] --upload <upload target> <source package name or .dsc URL/file> backportpackage -h DESCRIPTION
backportpackage fetches a package from one distribution release or from a specified .dsc path or URL and creates a no-change backport of that package to one or more Ubuntu releases release, optionally doing a test build of the package and/or uploading the resulting backport for testing. Unless a working directory is specified, the backported package is fetched and built in a temporary directory in /tmp, which is removed once the script finishes running. backportpackage is only recommended for testing backports in a PPA, not uploading backports to the Ubuntu archive. OPTIONS
-d DEST, --destination=DEST Backport the package to the specified Ubuntu release. If this option is unspecified, then backportpackage defaults to the release on which it is currently running. -s SOURCE, --source=SOURCE Backport the package from the specified release, which can be any release of your distribution or any of your distribution's parent distributions. If neither this option nor --version are specified, then backportpackage defaults to the current development release for your distribution. -S SUFFIX, --suffix=SUFFIX Add the specified suffix to the version number when backporting. backportpackage will always append ~ubuntuDESTINATION.1 to the original version number, and if SUFFIX is specified, it is appended to that, to get version numbers of the form ORIGINAL_VER- SION~ubuntuDESTINATION.1SUFFIX. If the backported package is being uploaded to a PPA, then SUFFIX defaults to ~ppa1, otherwise the default is blank. -b, --build Build the package with the specified builder before uploading. Note for cowbuilder(8) and pbuilder(8) users: This assumes the common configuration, where the ARCH and DIST environment is read by pbuilderrc(5) to select the correct base image. -B BUILDER, --builder=BUILDER Use the specified builder to build the package. Supported are cowbuilder(8), cowbuilder-dist(1), pbuilder(8), pbuilder-dist(1), and sbuild(1). The default is pbuilder(8). -U, --update Update the build environment before attempting to build. -u UPLOAD, --upload=UPLOAD Upload to UPLOAD with dput(1) (after confirmation). -k KEYID, --key=KEYID Specify the key ID to be used for signing. --dont-sign Do not sign the upload. -y, --yes Do not prompt before uploading to a PPA. For everyone's safety, this option is ignored if UPLOAD is ubuntu. -v VERSION, --version=VERSION If the --source option is specified, then backportpackage verifies that the current version of source package in SOURCE is the same as VERSION. Otherwise, backportpackage finds version VERSION of source package in your distribution's publishing history, regardless of the release in which it was published (or if that version is still current). This option is ignored if a .dsc URL or path is passed in instead of a source package name. -w WORKDIR, --workdir=WORKDIR If WORKDIR is specified, then all files are downloaded, unpacked, built into, and otherwise manipulated in WORKDIR. Otherwise, a temporary directory is created, which is deleted before backportpackage exits. -r, --release-pocket Target the upload at the release pocket, rather than the -backports pocket. This is required for Launchpad PPAs, which are pocket- less (and the default, when the upload target is a PPA). -m MIRROR, --mirror=MIRROR Use the specified mirror. Should be in the form http://archive.ubuntu.com/ubuntu. If the package isn't found on this mirror, back- portpackage will use Launchpad. -c BUG, --close=BUG Include a Launchpad closer for the specified bug in the auto-generated changelog. In the future, this may actually close the bug, but currently does not. -l INSTANCE, --lpinstance=INSTANCE Use the specified instance of Launchpad (e.g. "staging"), instead of the default of "production". --no-conf Do not read any configuration files, or configuration from environment variables. ENVIRONMENT
DEBFULLNAME, DEBEMAIL, UBUMAIL Used to determine the uploader (if not supplied as options). See ubuntu-dev-tools(5) for details. All of the CONFIGURATION VARIABLES below are also supported as environment variables. Variables in the environment take precedence to those in configuration files. CONFIGURATION VARIABLES
The following variables can be set in the environment or in ubuntu-dev-tools(5) configuration files. In each case, the script-specific variable takes precedence over the package-wide variable. BACKPORTPACKAGE_BUILDER, UBUNTUTOOLS_BUILDER The default value for --builder. BACKPORTPACKAGE_UPDATE_BUILDER, UBUNTUTOOLS_UPDATE_BUILDER The default value for --update. BACKPORTPACKAGE_UPLOAD The default value for --upload. BACKPORTPACKAGE_WORKDIR, UBUNTUTOOLS_WORKDIR The default value for --workdir. BACKPORTPACKAGE_UBUNTU_MIRROR, UBUNTUTOOLS_UBUNTU_MIRROR The default value for --mirror if the specified SOURCE release is an Ubuntu release. BACKPORTPACKAGE_DEBIAN_MIRROR, UBUNTUTOOLS_DEBIAN_MIRROR The default value for --mirror if the specified SOURCE release is a Debian release. BACKPORTPACKAGE_LPINSTANCE, UBUNTUTOOLS_LPINSTANCE The default value for --lpinstance. EXAMPLES
Test-build in your PPA a backport of znc from the current development release to your workstation's release, deleting the build products afterwards: backportpackage -u ppa:user/ppa znc Backport squashfs-tools from Maverick to both Karmic and Lucid and test-build both locally, leaving all build products in the current work- ing directory: backportpackage -b -s maverick -d karmic -d lucid -w . squashfs-tools Fetch a package from a PPA, backport it to Hardy, then upload it back to the same PPA: backportpackage -d hardy -u ppa:user/ppa https://launchpad.net/some/file.dsc SEE ALSO
ubuntu-dev-tools(5) AUTHOR
backportpackage and this manpage were written by Evan Broder <evan@ebroder.net> Both are released under GNU General Public License, version 2. ubuntu-dev-tools December 2010 BACKPORTPACKAGE(1)
All times are GMT -4. The time now is 07:57 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy