Cannot find shared libraries even -rpath is set correctly
I am building a third party program which is using libraries from a directory which is not set in /etc/ld.so.conf
- therefore I link the program with the -rpath
option.
Running objdump -x bin/GetHistPrices | grep -i path
to check if -rpath
is set correctly I get the confirmation it is OK:
RUNPATH
/application/FXCM-API/GetHistPrices/bin:
/application/FXCM-API/lib:
/application/FXCM-API/sample_tools/lib
cmake
copies all libraries into the same directory where the executable is generated [e.q. ../GetHistPrices/bin
]; therefore the 1st path is OK.
Even more, the last 2 paths point also to directories where the shared libraries are located - these -rpath
options are added automatically by the cmake
script.
When I try to run the program NOT inside the ../GetHistPrices/bin/
directory [where it is located] - e.q. I don't execute it with ./GetHistPrices
- so I get this error message:
bin/GetHistPrices: error while loading shared libraries:
libgsexpat.so: cannot open shared object file: No such file or directory
The program only gets started when I either run it from the bin/
or /application/FXCM-API/lib
directory because the needed library is located there.
1)
When I run the program withLD_LIBRARY_PATH="/application/FXCM-API/GetHistPrices/bin" bin/GetHistPrices
then it starts. But this is what I see as well in the executable. Strange!
2)
Adding /application/FXCM-API/GetHistPrices/bin
to /etc/ld.so.conf
let start the program as well successfully.
OS is SLES 12.3 - honestly, somehow it looks to me like a bug in the system.
My question:
What am I doing wrong that it doesn't work even RUNPATH
is correctly set in the executable.
ld rpath
add a comment |
I am building a third party program which is using libraries from a directory which is not set in /etc/ld.so.conf
- therefore I link the program with the -rpath
option.
Running objdump -x bin/GetHistPrices | grep -i path
to check if -rpath
is set correctly I get the confirmation it is OK:
RUNPATH
/application/FXCM-API/GetHistPrices/bin:
/application/FXCM-API/lib:
/application/FXCM-API/sample_tools/lib
cmake
copies all libraries into the same directory where the executable is generated [e.q. ../GetHistPrices/bin
]; therefore the 1st path is OK.
Even more, the last 2 paths point also to directories where the shared libraries are located - these -rpath
options are added automatically by the cmake
script.
When I try to run the program NOT inside the ../GetHistPrices/bin/
directory [where it is located] - e.q. I don't execute it with ./GetHistPrices
- so I get this error message:
bin/GetHistPrices: error while loading shared libraries:
libgsexpat.so: cannot open shared object file: No such file or directory
The program only gets started when I either run it from the bin/
or /application/FXCM-API/lib
directory because the needed library is located there.
1)
When I run the program withLD_LIBRARY_PATH="/application/FXCM-API/GetHistPrices/bin" bin/GetHistPrices
then it starts. But this is what I see as well in the executable. Strange!
2)
Adding /application/FXCM-API/GetHistPrices/bin
to /etc/ld.so.conf
let start the program as well successfully.
OS is SLES 12.3 - honestly, somehow it looks to me like a bug in the system.
My question:
What am I doing wrong that it doesn't work even RUNPATH
is correctly set in the executable.
ld rpath
add a comment |
I am building a third party program which is using libraries from a directory which is not set in /etc/ld.so.conf
- therefore I link the program with the -rpath
option.
Running objdump -x bin/GetHistPrices | grep -i path
to check if -rpath
is set correctly I get the confirmation it is OK:
RUNPATH
/application/FXCM-API/GetHistPrices/bin:
/application/FXCM-API/lib:
/application/FXCM-API/sample_tools/lib
cmake
copies all libraries into the same directory where the executable is generated [e.q. ../GetHistPrices/bin
]; therefore the 1st path is OK.
Even more, the last 2 paths point also to directories where the shared libraries are located - these -rpath
options are added automatically by the cmake
script.
When I try to run the program NOT inside the ../GetHistPrices/bin/
directory [where it is located] - e.q. I don't execute it with ./GetHistPrices
- so I get this error message:
bin/GetHistPrices: error while loading shared libraries:
libgsexpat.so: cannot open shared object file: No such file or directory
The program only gets started when I either run it from the bin/
or /application/FXCM-API/lib
directory because the needed library is located there.
1)
When I run the program withLD_LIBRARY_PATH="/application/FXCM-API/GetHistPrices/bin" bin/GetHistPrices
then it starts. But this is what I see as well in the executable. Strange!
2)
Adding /application/FXCM-API/GetHistPrices/bin
to /etc/ld.so.conf
let start the program as well successfully.
OS is SLES 12.3 - honestly, somehow it looks to me like a bug in the system.
My question:
What am I doing wrong that it doesn't work even RUNPATH
is correctly set in the executable.
ld rpath
I am building a third party program which is using libraries from a directory which is not set in /etc/ld.so.conf
- therefore I link the program with the -rpath
option.
Running objdump -x bin/GetHistPrices | grep -i path
to check if -rpath
is set correctly I get the confirmation it is OK:
RUNPATH
/application/FXCM-API/GetHistPrices/bin:
/application/FXCM-API/lib:
/application/FXCM-API/sample_tools/lib
cmake
copies all libraries into the same directory where the executable is generated [e.q. ../GetHistPrices/bin
]; therefore the 1st path is OK.
Even more, the last 2 paths point also to directories where the shared libraries are located - these -rpath
options are added automatically by the cmake
script.
When I try to run the program NOT inside the ../GetHistPrices/bin/
directory [where it is located] - e.q. I don't execute it with ./GetHistPrices
- so I get this error message:
bin/GetHistPrices: error while loading shared libraries:
libgsexpat.so: cannot open shared object file: No such file or directory
The program only gets started when I either run it from the bin/
or /application/FXCM-API/lib
directory because the needed library is located there.
1)
When I run the program withLD_LIBRARY_PATH="/application/FXCM-API/GetHistPrices/bin" bin/GetHistPrices
then it starts. But this is what I see as well in the executable. Strange!
2)
Adding /application/FXCM-API/GetHistPrices/bin
to /etc/ld.so.conf
let start the program as well successfully.
OS is SLES 12.3 - honestly, somehow it looks to me like a bug in the system.
My question:
What am I doing wrong that it doesn't work even RUNPATH
is correctly set in the executable.
ld rpath
ld rpath
asked Nov 24 '18 at 19:03
Al BundyAl Bundy
2,32921641
2,32921641
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53461465%2fcannot-find-shared-libraries-even-rpath-is-set-correctly%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53461465%2fcannot-find-shared-libraries-even-rpath-is-set-correctly%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown