Sponsored Content
Top Forums Programming how to use a dynamical linked library in C++ program in Linux Post 302116610 by porter on Monday 7th of May 2007 04:55:16 AM
Old 05-07-2007
I have an issue with using C++ in shared libraries and exposing name mangled exports. There is no problem with using C style exports and having the interface to the library follow C constaints and using C++ internally within the library.

C++ suffers from a number of limitations such as the fragile base class problem, non standard name mangling schemes, different vtable layouts between compilers that prevent it being a true language for components.

There can also be problems with C++ in shared libraries if loaded by an application written in C or a different C++ compiler due to initialisation of static objects not working.

How are you intending to write/generate your 'export' file?
 

5 More Discussions You Might Find Interesting

1. Programming

HOw to load dynamic lib from a statically linked program ?

I need to load a dynamic library from a statically linked program. Is there a way without recompiling my program. when i try to do that my program just crashes. If not possible, how can I avoid crashing the program when i try to load the dynamic lib, again without recompiling. If my... (1 Reply)
Discussion started by: disclaimer
1 Replies

2. UNIX for Dummies Questions & Answers

change the memory address of ld.linux-so in a dynamically linked process

hi, For some special reason , I'd like to control the memory address for the shared libraries in my dynamically linked process. And it is the "ld" which interpret the dynamically linked library, and in my system, the "ld-linux.so.2" is put at 0x00812000. Then I use "prelink -r" command to change... (0 Replies)
Discussion started by: zerocool_08
0 Replies

3. Linux

change the memory address of ld.linux-so in a dynamically linked process

hi, For some special reason , I'd like to control the memory address for the shared libraries in my dynamically linked process. And it is the "ld" which interpret the dynamically linked library, and in my system, the "ld-linux.so.2" is put at 0x00812000. Then I use "prelink -r" command to... (3 Replies)
Discussion started by: zerocool_08
3 Replies

4. Programming

dlopen failing on library with statically linked dependencies

I am attempting to port a program from OS X to Linux. It's C++ & Qt Creator and I did the original Windows to OS X port, so I tried to make it as POSIX-compliant as possible; the OS X port works well, and the Linux port builds and starts (it's on Ubuntu 9.10) but has some issues running. The... (2 Replies)
Discussion started by: Hodapp87
2 Replies

5. Homework & Coursework Questions

create a program that runs two processes linked oven

I need help program in C... :create a program that runs two processes linked oven (1 Reply)
Discussion started by: gizmo16
1 Replies
PLDD(1) 							 Linux User Manual							   PLDD(1)

NAME
pldd - display dynamic shared objects linked into a process SYNOPSIS
pldd pid pldd option DESCRIPTION
The pldd command displays a list of the dynamic shared objects that are linked into the process with the specified process ID. The list includes the libraries that have been dynamically loaded using dlopen(3). OPTIONS
-?, --help Display program help message. --usage Display a short usage message. -V, --version Display the program version. EXIT STATUS
On success, pldd exits with the status 0. If the specified process does not exist, the user does not have permission to access its dynamic shared object list, or no command-line arguments are supplied, pldd exists with a status of 1. If given an invalid option, it exits with the status 64. VERSIONS
pldd is available since glibc 2.15. CONFORMING TO
The pldd command is not specified by POSIX.1. Some other systems have a similar command. NOTES
The command lsof -p PID also shows output that includes the dynamic shared objects that are linked into a process. The gdb(1) info shared command also shows the shared libraries being used by a process, so that one can obtain similar output to pldd using a command such as the following (to monitor the process with the specified pid): $ gdb -ex "set confirm off" -ex "set height 0" -ex "info shared" -ex "quit" -p $pid | grep '^0x.*0x' BUGS
Since glibc 2.19, pldd is broken: it just hangs when executed. It is unclear if it will ever be fixed. EXAMPLE
$ echo $$ # Display PID of shell 1143 $ pldd $$ # Display DSOs linked into the shell 1143: /usr/bin/bash linux-vdso.so.1 /lib64/libtinfo.so.5 /lib64/libdl.so.2 /lib64/libc.so.6 /lib64/ld-linux-x86-64.so.2 /lib64/libnss_files.so.2 SEE ALSO
ldd(1), lsof(1), dlopen(3), 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/. GNU
2017-09-15 PLDD(1)
All times are GMT -4. The time now is 01:20 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy