Sponsored Content
Top Forums Programming Conditions/suggestions to use shared library in C/C++ coding Post 303017431 by jim mcnamara on Wednesday 16th of May 2018 12:11:49 AM
Old 05-16-2018
How to do this with a pretend zlib path -- you need to change it to whatever code you are trying to run in your C/C++ code. C examples:

1. you have to get the header files into your code
Steps:

A. gcc -I /path/to/zlib # when compiling. This adds a directory to the include search path
B. In your C code you have to include the "foreign" header file just like you would do for standard C header files:
Code:
#include <zlib.h>

2. You have to use -L path/to/zlib/libraries also on the gcc command line. To compile:
Code:
gcc -mycode.c -I /path/to/zlib/headers -L /path/to/zlib/shared_libraries

3. Finally you need to have added (or created) an environment variable LD_LIBRARY_PATH which knows where the special shared libraries live on a particular system.
Code:
export LD_LIBRARY_PATH={$LD_LIBRARY_PATH}:/path/to/zlib/shared_libraries

This has to be there (along with the zlib shared libraries in a directory) on every system
you want to run you code one. This is the biggest source of error for this kind of development.
You can find it because the ldd command does not know where zlib libraries are - meaning at runtime the link and run step fails. Which creates all kinds of user complaints and problems. This variable has to be created everywhere for every user who will execute the code. The LD_LIBRARY_PATH definition systemwide .profile file is a possible choice, it may have security issues.

Last edited by jim mcnamara; 05-16-2018 at 01:17 AM..
This User Gave Thanks to jim mcnamara For This Post:
 

10 More Discussions You Might Find Interesting

1. Programming

Shared Library

hello all I want to work in shared libraries how can i work in Linux Environment ? (2 Replies)
Discussion started by: rajashekaran
2 Replies

2. UNIX for Advanced & Expert Users

shared library

What is the primary difference between static library and dynamic library? and how to write static shared library? (1 Reply)
Discussion started by: areef4u
1 Replies

3. Programming

Shared memory in shared library

I need to create a shared library to access an in memory DB. The DB is not huge, but big enough to make it cumbersome to carry around in every single process using the shared library. Luckily, it is pretty static information, so I don't need to worry much about synchronizing the data between... (12 Replies)
Discussion started by: DreamWarrior
12 Replies

4. Programming

Using funcion in a shared library

Is there any way in C to access a function in C shared library. I have used dlopen to access /load the c shared library but unable to use the function in the shared object. Thanks in advance :b: (1 Reply)
Discussion started by: yhacks
1 Replies

5. Programming

Shared memory for shared library

I am writing a shared library in Linux (but compatible with other UNIXes) and I want to allow multiple instances to share a piece of memory -- 1 byte is enough. What's the "best" way to do this? I want to optimize for speed and portability. Obviously, I'll have to worry about mutual exclusion. (0 Replies)
Discussion started by: otheus
0 Replies

6. Shell Programming and Scripting

Suggestions/Recommendations for coding

#!/bin/sh #set -x uploaddir="/u01/app/informatica/dev3/sample/GPMDir/UploadDir" processdir="/u01/app/informatica/dev3/sample/GPMDir/ProcessDir" datetime=`date +%Y%m%d` logdir="$processdir/GPMLogFile_$datetime.log" echo "<---------------Start Copying & Moving GPM Files To Process... (0 Replies)
Discussion started by: Ariean
0 Replies

7. Shell Programming and Scripting

How to change a Makefile from building static library to shared library?

Hi: I have a library that it only offers Makefile for building static library. It built libxxx.a file. How do I in any way build a shared library? (either changin the Makefile or direct script or command to build shared library) Thanks. (1 Reply)
Discussion started by: cpthk
1 Replies

8. UNIX for Dummies Questions & Answers

Shared static library

Hello Please what does mean shared static library and LD-Preload? Thank you (3 Replies)
Discussion started by: chercheur857
3 Replies

9. Programming

Shared library with acces to shared memory.

Hello. I am new to this forum and I would like to ask for advice about low level POSIX programming. I have to implement a POSIX compliant C shared library. A file will have some variables and the shared library will have some functions which need those variables. There is one special... (5 Replies)
Discussion started by: iamjag
5 Replies

10. AIX

Add shared members from library to same library in a different directory

I'm trying to install libiconv to AIX 7.1 from an rpm off of the perzl site. The rpm appears to install but I get this error message. add shr4.o shared members from /usr/lib/libiconv.a to /opt/freeware/lib/libiconv.a add shr.o shared members from /usr/lib/libiconv.a to ... (5 Replies)
Discussion started by: kneemoe
5 Replies
Cyrus(3)						User Contributed Perl Documentation						  Cyrus(3)

NAME
Authen::SASL::Cyrus - XS SASL Authentication SYNOPSIS
use Authen::SASL; $sasl = Authen::SASL->new( mechanism => 'NAME', callback => { NAME => VALUE, NAME => VALUE, ... }, ); $conn = $sasl->client_new(<service>, <server>); DESCRIPTION
SASL is a generic mechanism for authentication used by several network protocols. Authen::SASL::Cyrus provides an implementation framework that all protocols should be able to share. The XS framework makes calls into the existing libsasl2.so shared library to perform SASL client connection functionality, including loading existing shared library mechanisms. CONSTRUCTOR The contructor may be called with or without arguments. Passing arguments is just a short cut to calling the "mechanism" and "callback" methods. client_new( SERVICE, HOST ) Creates and returns a new connection object blessed into Authen::SASL::Cyrus. It is on that returned reference that the following methods are available. The SERVICE is the name of the service being implemented, which may be used by the underlying mechanism. An example service is "ldap". The HOST is the name of the server being contacted, which may also be used by the underlying mechanism. Authen::SASL::Cyrus METHODS callback ( NAME ) Tells if the named callback has a handler installed. The list of implemented callbacks is "user", "auth", and "language". Others may be implemented in future releases. callback( NAME => VALUE, NAME => VALUE, ... ) Sets the given callback(s) to the given value(s). See the "Callbacks" section for a description of callback VALUEs. See above for a list of implemented callback NAMEs. client_start The initial step to be performed. Returns the initial value to pass to the server. client_step( CHALLENGE ) This method is called when a response from the server requires it. CHALLENGE is the value from the server. Returns the next value to pass to the server. code Returns a 1 if an error has occurred in any step along the way. See the "error" method to get a better explanation of what error occurred. Returns a 0 if no errors have occurred. error Returns a string with a brief description of what caused the last error, AND clears the error message so that subsequent calls will return an empty string until another error occurs. host Returns the host argument that was passed to "client_new" =item mechanism Returns the SASL mechanism currently in use. It should match one of the installed SASL shared library mechanisms (see your SASL distribution for a list of available mechanisms). property( NAME ) Gets the SASL value for the named property. Currently implemented property names are: "user", "ssf", "maxout", "realm", "optctx", "iplocal" | "sockname", "ipremote" | "peername". property( NAME => VALUE, NAME => VALUE, ... ) Sets the named property(ies) to the given value(s). Currently implemented property names are given above. service Returns the service argument that was passed to "client_new" Callbacks There are three different ways in which a callback may be passed CODEREF If the value passed is a code reference then, when needed, it will be called and the connection object will be passed as the first argument. ARRAYREF If the value passed is an array reference, the first element in the array must be a code reference. When the callback is called the code reference will be called with the connection object passed as the first argument and the second value from the array passed after. The code reference should return a scalar value which is the answer to the callback, e.g. a "user" callback should return a single string which is the username of the client. SCALAR All other values passed will be returned directly to the SASL library as the answer to the callback. SEE ALSO
Authen::SASL AUTHOR
Mark Adamson <mark@nb.net> Please report any bugs, or post any suggestions, to the author. COPYRIGHT
Copyright (c) 2005 Carnegie Mellon University. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. POD ERRORS
Hey! The above document had some coding errors, which are explained below: Around line 35: '=item' outside of any '=over' Around line 44: You forgot a '=back' before '=head2' perl v5.12.1 2004-12-17 Cyrus(3)
All times are GMT -4. The time now is 06:13 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy