Sponsored Content
Top Forums Programming How to make use others' C library installed not for the system-wide (Ubuntu/Linux)? Post 303042977 by Neo on Wednesday 15th of January 2020 12:04:38 AM
Old 01-15-2020
First, I suggest when troubleshooting, you should:

Use the full path name to file, not relative path name. This will insure there are no strange, unseen PATH issues. For example:

Code:
gcc -Wall -O3 -I ./htslib-1.10.2/htslib  -o vcf_parser01 vcf.c  vcf_parser01.c

I would change this to:

Code:
gcc -Wall -O3 -I /FULL/PATH/TO/HERE/htslib-1.10.2/htslib  -o vcf_parser01 vcf.c  vcf_parser01.c

Second, you should confirm that these objects are in the PATH, exactly, and that you have read / access permission for them.

Sometimes, even the best sys admins install code under one userid, then they work as another userid, and they do not have permissions to access the file. Happens all the time (at least to me, LOL).

This is generally the first two steps I always take (back to basics, before back to the future).
  • Insure your PATH(s) are correct and objects / symbols are in the PATH(s), correctly.
  • Check file and directly permissions for the userid you are using to build.

UNIX and Linux are funny things, they generally do what they are told to do and report back the "facts" as they find them. In your case, gcc cannot find required symbols and objects. This is generally because they cannot find them, i.e. not in the search PATH or the file/directory permissions are "not as required".

Please post back and let me know if you are certain your PATHs are correct and why, using the FULL PATH names to files and directories in your command line for gcc.

Since we are not "standing behind you, watching you type", we cannot "see" what directory you are in, so to be sure, it is always best to use FULL PATH names when troubleshooting a problem like this.

Thanks.
This User Gave Thanks to Neo 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
ENVPATH(1p)						User Contributed Perl Documentation					       ENVPATH(1p)

NAME
envpath - Advanced operations on path variables SYNOPSIS
Run this script with the "-help" option for usage details. DESCRIPTION
Parses the command line, modifies the specified path variable(s), and execs the remaining arguments. There are two modes, simple and advanced: SIMPLE MODE Simple mode presents an alternative, platform-independent syntax for specifying paths wherein the path separator is "," and environment variables can be expanded with @NAME@. For example envpath PATH=@PATH@,/usr/ucb -- printenv PATH appends "/usr/ucb" to $PATH and execs printenv PATH. The "--" is optional. You can also specify prepending or appending by using "+=" or "=+" respectively: # place /usr/ucb at the front envpath PATH+=/usr/ucb -- printenv PATH # place /usr/ucb at the back envpath PATH=+/usr/ucb -- printenv PATH Simple mode requires only this script; it does not require Env::Path to be installed. ADVANCED MODE Advanced mode basically provides command-line access to the features of Env::Path (see), which must be installed. The "-E" flag selects the path variable to operate on and other flags specify operations on it. E.g. envpath -E MANPATH -A /tmp -R /usr/share/man -N -U -- man ... would take MANPATH, append /tmp to it, remove any references to "/usr/share/man", remove any dirs which don't exist ("-N") and remove redundant entries ("-U") before running man. The -Whence option allows patterns. Thus envpath -W "cat*" would find all programs on PATH which match cat*. CLEARCASE WINKINS
A big part of the motivation for this script was for use with ClearCase builds; iff you know or care about ClearCase read on. Typically, during builds (and not just with ClearCase), pathvars such as PATH, CLASSPATH, and LD_LIBRARY_PATH must be strictly controlled. One choice is to force static values of these into the environment during the build process, another is to simply require/expect users to set their paths appropriately. Each of these can lead to subtle build or runtime errors, however, and makes it hard for new users to get up to speed since their personal environment must be just so. Another common choice is to use only full pathnames within the Makefile, avoiding reliance on search paths at all. This is often the best way to go but can suppress ClearCase winkins. For example, say you're generating ascii files of some type with a binary executable you just built: $(INCDIR)/foo.h: $(BINDIR)/foomaker $(BINDIR)/foomaker ... The problem with this is that $(BINDIR) likely contains a platform part such as 'solaris' or 'hpux', which makes it impossible to wink in the foo.h file on other platforms even though it's ascii. This same thing could come up even with a standard pre-built utility that's in different places on different platforms; "yacc", for instance, is in /usr/bin on Linux and /usr/ccs/bin on Solaris. You could modify the path on the fly: $(INCDIR)/foo.h: $(BINDIR)/foomaker PATH=$(BINDIR)$(SEP)$$PATH foomaker ... but this suffers from the same problem: since $(BINDIR) and $PATH are expanded literally within the build script they'll suppress winkins. Here's a solution using envpath: $(INCDIR)/foo.h: $(BINDIR)/foomaker envpath PATH=@BINDIR@,@PATH@ foomaker ... This hides the evaluation of BINDIR and PATH such that clearmake never sees anything but the literals, thus clearing the field for winkins. Of course envpath is capable of doing more than this, but it's the original reason it was written. AUTHOR
David Boyce <dsbperl AT boyski.com> COPYRIGHT
Copyright (c) 2000-2001 David Boyce. All rights reserved. This Perl program is free software; you may redistribute and/or modify it under the same terms as Perl itself. SEE ALSO
perl(1), "perldoc Env::Path" perl v5.10.1 2003-10-10 ENVPATH(1p)
All times are GMT -4. The time now is 04:40 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy