03-02-2011
Quote:
Originally Posted by
dorik
Since I took unnecessary definitions outside of the library the library hasn't even been loading.
They would seem to be necessary, then. Remember that exporting dynamic symbols from your project exports
your symbols, not the entire universe...
Also make sure your library isn't last in the link order, the stuff you want it to link to should come after it. I'm not sure that'll help, but sometimes that matters for static linking...
Quote:
If I can get it to load, I am hoping that static member won't be duplicated.
I don't think it works that way for the reasons I stated above.
Quote:
Edit: Just to make sure we're using the same terms: by definition I mean cpp and by declaration I mean header.
The compiler doesn't know any difference between header files and source files. What matters is what you put in them. So it's entirely possible for the wrong kind of declaration in a header file to create many conflicting symbols when included in several files.
I don't suppose you could reduce this to a minimal example?
10 More Discussions You Might Find Interesting
1. Programming
Hi,
I have been trying to create a sharef object on my HP UX 11 machine
(HP-UX <myhostname> B.11.00 A 9000/879 ...... two-user license)
to create the shared object first I am creating the object file using
cc -Aa -c +z dyn.c
(I use -Aa and +z as per HP's manual on linkers ) to create the... (0 Replies)
Discussion started by: linuxpenguin
0 Replies
2. Linux
Hi All,
I created the share object file using
gcc -shared -fpic mypp.cpp -o myp.so
but, pls tell me how to link this .so file to my client program.
Thanks (0 Replies)
Discussion started by: sarwan
0 Replies
3. AIX
Hi,
When using shared objects on AIX 4.3 i am getting runtime problems.
I have a small sample program which links to a shared object libray, oracle and system related libraries.
At runtime it fails (gives segmentation fault and coredump ) in one proc file when executing login statement.
But... (0 Replies)
Discussion started by: suman_jakkula
0 Replies
4. Programming
Hi
I have a multithreaded daemon(server) which will accept connections from various clients and sends back results to them.
In order to serve my daemon clients, it has to establish a TCP connection to another server(vendor supplied which is listening on a specific TCP port) and gets the... (11 Replies)
Discussion started by: axes
11 Replies
5. UNIX for Advanced & Expert Users
Hi All,
I have a problem with the shared objects setup in AIX. We have a customized shell written by the developers over here. When i issue a MQ Series command (mqsilist) it is giving the error as . All the commands making use of this libImbCmdLib.a.so is failing. But when executed in normal... (1 Reply)
Discussion started by: dhanamurthy
1 Replies
6. Shell Programming and Scripting
Hi,
I have created a shared object (abc.so) which has a function sum(int a, int b).
Is there any way to load the "abc.so" and use the sum function using shell script..
thanks in advance (2 Replies)
Discussion started by: yhacks
2 Replies
7. AIX
Hi all,
I am developing an application with two components. One "c" binary and one "C++" shared object.
While execution, the shared object crashes out and core dump is created whenever "new" is executed. But if i use malloc this will work perfectly.
I tried to use dbx. Below given was... (1 Reply)
Discussion started by: itssujith
1 Replies
8. Programming
Hello,
While running a c++ shared object on AIX I am facing below error -
rtld: 0712-001 Symbol __ct__3ETDFv was referenced
from module /bancs/aml/lib/libmonitor.so(), but a runtime definition
of the symbol was not found.
rtld: 0712-001 Symbol etd_insert__3ETDFv was... (3 Replies)
Discussion started by: yatrik007
3 Replies
9. Red Hat
Hi,
I would like to create a shared object ( .so).
This shared object
1. uses the functions from a library.
2. Also it should be able to use the global variable in an app
To achieve this what should I do ? 1) To use the functions in the library should I give the -ld option while... (1 Reply)
Discussion started by: rvan
1 Replies
10. Programming
Hello,
I am not that experienced with Linux, and I am currently facing some issues.
The application I'm working on uses hundreds of threads. To optimize the memory usage, I am putting all my data inside a shared object (so).
The steps for this are as follows:
1. a C file (generated... (17 Replies)
Discussion started by: Maelstrom
17 Replies
LEARN ABOUT DEBIAN
shell-quote
SHELL-QUOTE(1p) User Contributed Perl Documentation SHELL-QUOTE(1p)
NAME
shell-quote - quote arguments for safe use, unmodified in a shell command
SYNOPSIS
shell-quote [switch]... arg...
DESCRIPTION
shell-quote lets you pass arbitrary strings through the shell so that they won't be changed by the shell. This lets you process commands
or files with embedded white space or shell globbing characters safely. Here are a few examples.
EXAMPLES
ssh preserving args
When running a remote command with ssh, ssh doesn't preserve the separate arguments it receives. It just joins them with spaces and
passes them to "$SHELL -c". This doesn't work as intended:
ssh host touch 'hi there' # fails
It creates 2 files, hi and there. Instead, do this:
cmd=`shell-quote touch 'hi there'`
ssh host "$cmd"
This gives you just 1 file, hi there.
process find output
It's not ordinarily possible to process an arbitrary list of files output by find with a shell script. Anything you put in $IFS to
split up the output could legitimately be in a file's name. Here's how you can do it using shell-quote:
eval set -- `find -type f -print0 | xargs -0 shell-quote --`
debug shell scripts
shell-quote is better than echo for debugging shell scripts.
debug() {
[ -z "$debug" ] || shell-quote "debug:" "$@"
}
With echo you can't tell the difference between "debug 'foo bar'" and "debug foo bar", but with shell-quote you can.
save a command for later
shell-quote can be used to build up a shell command to run later. Say you want the user to be able to give you switches for a command
you're going to run. If you don't want the switches to be re-evaluated by the shell (which is usually a good idea, else there are
things the user can't pass through), you can do something like this:
user_switches=
while [ $# != 0 ]
do
case x$1 in
x--pass-through)
[ $# -gt 1 ] || die "need an argument for $1"
user_switches="$user_switches "`shell-quote -- "$2"`
shift;;
# process other switches
esac
shift
done
# later
eval "shell-quote some-command $user_switches my args"
OPTIONS
--debug
Turn debugging on.
--help
Show the usage message and die.
--version
Show the version number and exit.
AVAILABILITY
The code is licensed under the GNU GPL. Check http://www.argon.org/~roderick/ or CPAN for updated versions.
AUTHOR
Roderick Schertler <roderick@argon.org>
perl v5.8.4 2005-05-03 SHELL-QUOTE(1p)