Having issue linking shared object in linux












2














I have been provided with .so file.



ldd libTodoAPI.so
linux-vdso.so.1 => (0x00007ffc766b8000)
libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007fead8e3f000)
libsqlite3.so => /usr/lib/libsqlite3.so (0x00007fead8b6a000)
libQt5Network.so.5 => /usr/lib/libQt5Network.so.5 (0x00007fead8804000)
libQt5Script.so.5 => /usr/lib/libQt5Script.so.5 (0x00007fead838b000)
libQt5Core.so.5 => /usr/lib/libQt5Core.so.5 (0x00007fead7c4f000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fead78cd000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fead76b7000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fead72ed000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fead70e9000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fead6ecc000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fead6bc3000)
libicui18n.so.53 => /usr/lib/libicui18n.so.53 (0x00007fead6777000)
libicuuc.so.53 => /usr/lib/libicuuc.so.53 (0x00007fead63ec000)
libgthread-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0 (0x00007fead61ea000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fead5fe2000)
libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007fead5cd1000)
/lib64/ld-linux-x86-64.so.2 (0x00007fead949a000)
libicudata.so.53 => /usr/lib/libicudata.so.53 (0x00007fead4649000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fead43d9000)


and with header



#ifndef TODO_API_H
#define TODO_API_H

#include <string>

using namespace std;

namespace todoarea {
class TodoAPI{
public:
static string checkDoer();
static string getInformation();
static string callTask(string funcName, string param);
static string Done(string param);
static string returnStatus(string param);
static string Close();
};
}

#endif //TODO_API_H


I am trying to create a program to call from this shared object and having problem.



//load.cpp
#include <iostream>
#include "TodoAPI.h"

using namespace todoarea;

int main(int argc, char **argv)
{
// TodoAPI* myTodo = new TodoAPI();
// myTodo>checkDoer();
// TodoAPI m;
string data = TodoAPI::checkDoer();
string a = TodoAPI::getInformation();
}


When I try to compile it



g++ load.cpp -lTodoAPI
/tmp/ccs1hwWP.o: In function `main':
load.cpp:(.text+0x27): undefined reference to `todoarea::TodoAPI::checkDoer[abi:cxx11]()'
load.cpp:(.text+0x33): undefined reference to `todoarea::TodoAPI::getInformation[abi:cxx11]()'
collect2: error: ld returned 1 exit status


If I try to see the so file



nm -s libTodoAPI.so
nm: libTodoAPI.so: no symbols


Also



nm -DC libTodoAPI.so  | grep todoarea
000000000000a63a T todoarea::TodoAPI::Done(std::string)
000000000000a098 T todoarea::TodoAPI::callTask(std::string, std::string)
0000000000009e9c T todoarea::TodoAPI::getInformation()
000000000000a398 T todoarea::TodoAPI::returnStatus(std::string)
0000000000009ca0 T todoarea::TodoAPI::checkDoer()
000000000000a8dc T todoarea::TodoAPI::Close()


It has lots of functions (mostly seems like Qt) listed when I try nm with -D option.



Question: How can I use this library to create app in linux? What am I doing wrong? I tried to call functions dynamically but failed. Any help would be appreciated.










share|improve this question
























  • I think you might need to specify the path to your shared library -L/path/to/your/so -lTodoAPI. Try this: gist.github.com/gubatron/32f82053596c24b6bec6
    – Milos Matovic
    Nov 12 '18 at 14:46










  • I did try the -L option I even copied this .so file to /usr/lib and /usr/local/lib all same.
    – THEn
    Nov 12 '18 at 15:17










  • i am suspecting that this .so file was compiled with Qt libraries and might have different format or structure but I am not sure. I am new to linux.
    – THEn
    Nov 12 '18 at 15:19
















2














I have been provided with .so file.



ldd libTodoAPI.so
linux-vdso.so.1 => (0x00007ffc766b8000)
libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007fead8e3f000)
libsqlite3.so => /usr/lib/libsqlite3.so (0x00007fead8b6a000)
libQt5Network.so.5 => /usr/lib/libQt5Network.so.5 (0x00007fead8804000)
libQt5Script.so.5 => /usr/lib/libQt5Script.so.5 (0x00007fead838b000)
libQt5Core.so.5 => /usr/lib/libQt5Core.so.5 (0x00007fead7c4f000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fead78cd000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fead76b7000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fead72ed000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fead70e9000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fead6ecc000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fead6bc3000)
libicui18n.so.53 => /usr/lib/libicui18n.so.53 (0x00007fead6777000)
libicuuc.so.53 => /usr/lib/libicuuc.so.53 (0x00007fead63ec000)
libgthread-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0 (0x00007fead61ea000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fead5fe2000)
libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007fead5cd1000)
/lib64/ld-linux-x86-64.so.2 (0x00007fead949a000)
libicudata.so.53 => /usr/lib/libicudata.so.53 (0x00007fead4649000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fead43d9000)


and with header



#ifndef TODO_API_H
#define TODO_API_H

#include <string>

using namespace std;

namespace todoarea {
class TodoAPI{
public:
static string checkDoer();
static string getInformation();
static string callTask(string funcName, string param);
static string Done(string param);
static string returnStatus(string param);
static string Close();
};
}

#endif //TODO_API_H


I am trying to create a program to call from this shared object and having problem.



//load.cpp
#include <iostream>
#include "TodoAPI.h"

using namespace todoarea;

int main(int argc, char **argv)
{
// TodoAPI* myTodo = new TodoAPI();
// myTodo>checkDoer();
// TodoAPI m;
string data = TodoAPI::checkDoer();
string a = TodoAPI::getInformation();
}


When I try to compile it



g++ load.cpp -lTodoAPI
/tmp/ccs1hwWP.o: In function `main':
load.cpp:(.text+0x27): undefined reference to `todoarea::TodoAPI::checkDoer[abi:cxx11]()'
load.cpp:(.text+0x33): undefined reference to `todoarea::TodoAPI::getInformation[abi:cxx11]()'
collect2: error: ld returned 1 exit status


If I try to see the so file



nm -s libTodoAPI.so
nm: libTodoAPI.so: no symbols


Also



nm -DC libTodoAPI.so  | grep todoarea
000000000000a63a T todoarea::TodoAPI::Done(std::string)
000000000000a098 T todoarea::TodoAPI::callTask(std::string, std::string)
0000000000009e9c T todoarea::TodoAPI::getInformation()
000000000000a398 T todoarea::TodoAPI::returnStatus(std::string)
0000000000009ca0 T todoarea::TodoAPI::checkDoer()
000000000000a8dc T todoarea::TodoAPI::Close()


It has lots of functions (mostly seems like Qt) listed when I try nm with -D option.



Question: How can I use this library to create app in linux? What am I doing wrong? I tried to call functions dynamically but failed. Any help would be appreciated.










share|improve this question
























  • I think you might need to specify the path to your shared library -L/path/to/your/so -lTodoAPI. Try this: gist.github.com/gubatron/32f82053596c24b6bec6
    – Milos Matovic
    Nov 12 '18 at 14:46










  • I did try the -L option I even copied this .so file to /usr/lib and /usr/local/lib all same.
    – THEn
    Nov 12 '18 at 15:17










  • i am suspecting that this .so file was compiled with Qt libraries and might have different format or structure but I am not sure. I am new to linux.
    – THEn
    Nov 12 '18 at 15:19














2












2








2







I have been provided with .so file.



ldd libTodoAPI.so
linux-vdso.so.1 => (0x00007ffc766b8000)
libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007fead8e3f000)
libsqlite3.so => /usr/lib/libsqlite3.so (0x00007fead8b6a000)
libQt5Network.so.5 => /usr/lib/libQt5Network.so.5 (0x00007fead8804000)
libQt5Script.so.5 => /usr/lib/libQt5Script.so.5 (0x00007fead838b000)
libQt5Core.so.5 => /usr/lib/libQt5Core.so.5 (0x00007fead7c4f000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fead78cd000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fead76b7000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fead72ed000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fead70e9000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fead6ecc000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fead6bc3000)
libicui18n.so.53 => /usr/lib/libicui18n.so.53 (0x00007fead6777000)
libicuuc.so.53 => /usr/lib/libicuuc.so.53 (0x00007fead63ec000)
libgthread-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0 (0x00007fead61ea000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fead5fe2000)
libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007fead5cd1000)
/lib64/ld-linux-x86-64.so.2 (0x00007fead949a000)
libicudata.so.53 => /usr/lib/libicudata.so.53 (0x00007fead4649000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fead43d9000)


and with header



#ifndef TODO_API_H
#define TODO_API_H

#include <string>

using namespace std;

namespace todoarea {
class TodoAPI{
public:
static string checkDoer();
static string getInformation();
static string callTask(string funcName, string param);
static string Done(string param);
static string returnStatus(string param);
static string Close();
};
}

#endif //TODO_API_H


I am trying to create a program to call from this shared object and having problem.



//load.cpp
#include <iostream>
#include "TodoAPI.h"

using namespace todoarea;

int main(int argc, char **argv)
{
// TodoAPI* myTodo = new TodoAPI();
// myTodo>checkDoer();
// TodoAPI m;
string data = TodoAPI::checkDoer();
string a = TodoAPI::getInformation();
}


When I try to compile it



g++ load.cpp -lTodoAPI
/tmp/ccs1hwWP.o: In function `main':
load.cpp:(.text+0x27): undefined reference to `todoarea::TodoAPI::checkDoer[abi:cxx11]()'
load.cpp:(.text+0x33): undefined reference to `todoarea::TodoAPI::getInformation[abi:cxx11]()'
collect2: error: ld returned 1 exit status


If I try to see the so file



nm -s libTodoAPI.so
nm: libTodoAPI.so: no symbols


Also



nm -DC libTodoAPI.so  | grep todoarea
000000000000a63a T todoarea::TodoAPI::Done(std::string)
000000000000a098 T todoarea::TodoAPI::callTask(std::string, std::string)
0000000000009e9c T todoarea::TodoAPI::getInformation()
000000000000a398 T todoarea::TodoAPI::returnStatus(std::string)
0000000000009ca0 T todoarea::TodoAPI::checkDoer()
000000000000a8dc T todoarea::TodoAPI::Close()


It has lots of functions (mostly seems like Qt) listed when I try nm with -D option.



Question: How can I use this library to create app in linux? What am I doing wrong? I tried to call functions dynamically but failed. Any help would be appreciated.










share|improve this question















I have been provided with .so file.



ldd libTodoAPI.so
linux-vdso.so.1 => (0x00007ffc766b8000)
libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007fead8e3f000)
libsqlite3.so => /usr/lib/libsqlite3.so (0x00007fead8b6a000)
libQt5Network.so.5 => /usr/lib/libQt5Network.so.5 (0x00007fead8804000)
libQt5Script.so.5 => /usr/lib/libQt5Script.so.5 (0x00007fead838b000)
libQt5Core.so.5 => /usr/lib/libQt5Core.so.5 (0x00007fead7c4f000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fead78cd000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fead76b7000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fead72ed000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fead70e9000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fead6ecc000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fead6bc3000)
libicui18n.so.53 => /usr/lib/libicui18n.so.53 (0x00007fead6777000)
libicuuc.so.53 => /usr/lib/libicuuc.so.53 (0x00007fead63ec000)
libgthread-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0 (0x00007fead61ea000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fead5fe2000)
libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007fead5cd1000)
/lib64/ld-linux-x86-64.so.2 (0x00007fead949a000)
libicudata.so.53 => /usr/lib/libicudata.so.53 (0x00007fead4649000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fead43d9000)


and with header



#ifndef TODO_API_H
#define TODO_API_H

#include <string>

using namespace std;

namespace todoarea {
class TodoAPI{
public:
static string checkDoer();
static string getInformation();
static string callTask(string funcName, string param);
static string Done(string param);
static string returnStatus(string param);
static string Close();
};
}

#endif //TODO_API_H


I am trying to create a program to call from this shared object and having problem.



//load.cpp
#include <iostream>
#include "TodoAPI.h"

using namespace todoarea;

int main(int argc, char **argv)
{
// TodoAPI* myTodo = new TodoAPI();
// myTodo>checkDoer();
// TodoAPI m;
string data = TodoAPI::checkDoer();
string a = TodoAPI::getInformation();
}


When I try to compile it



g++ load.cpp -lTodoAPI
/tmp/ccs1hwWP.o: In function `main':
load.cpp:(.text+0x27): undefined reference to `todoarea::TodoAPI::checkDoer[abi:cxx11]()'
load.cpp:(.text+0x33): undefined reference to `todoarea::TodoAPI::getInformation[abi:cxx11]()'
collect2: error: ld returned 1 exit status


If I try to see the so file



nm -s libTodoAPI.so
nm: libTodoAPI.so: no symbols


Also



nm -DC libTodoAPI.so  | grep todoarea
000000000000a63a T todoarea::TodoAPI::Done(std::string)
000000000000a098 T todoarea::TodoAPI::callTask(std::string, std::string)
0000000000009e9c T todoarea::TodoAPI::getInformation()
000000000000a398 T todoarea::TodoAPI::returnStatus(std::string)
0000000000009ca0 T todoarea::TodoAPI::checkDoer()
000000000000a8dc T todoarea::TodoAPI::Close()


It has lots of functions (mostly seems like Qt) listed when I try nm with -D option.



Question: How can I use this library to create app in linux? What am I doing wrong? I tried to call functions dynamically but failed. Any help would be appreciated.







linux g++ shared-libraries






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 12 '18 at 15:18

























asked Nov 12 '18 at 12:32









THEn

1,44032534




1,44032534












  • I think you might need to specify the path to your shared library -L/path/to/your/so -lTodoAPI. Try this: gist.github.com/gubatron/32f82053596c24b6bec6
    – Milos Matovic
    Nov 12 '18 at 14:46










  • I did try the -L option I even copied this .so file to /usr/lib and /usr/local/lib all same.
    – THEn
    Nov 12 '18 at 15:17










  • i am suspecting that this .so file was compiled with Qt libraries and might have different format or structure but I am not sure. I am new to linux.
    – THEn
    Nov 12 '18 at 15:19


















  • I think you might need to specify the path to your shared library -L/path/to/your/so -lTodoAPI. Try this: gist.github.com/gubatron/32f82053596c24b6bec6
    – Milos Matovic
    Nov 12 '18 at 14:46










  • I did try the -L option I even copied this .so file to /usr/lib and /usr/local/lib all same.
    – THEn
    Nov 12 '18 at 15:17










  • i am suspecting that this .so file was compiled with Qt libraries and might have different format or structure but I am not sure. I am new to linux.
    – THEn
    Nov 12 '18 at 15:19
















I think you might need to specify the path to your shared library -L/path/to/your/so -lTodoAPI. Try this: gist.github.com/gubatron/32f82053596c24b6bec6
– Milos Matovic
Nov 12 '18 at 14:46




I think you might need to specify the path to your shared library -L/path/to/your/so -lTodoAPI. Try this: gist.github.com/gubatron/32f82053596c24b6bec6
– Milos Matovic
Nov 12 '18 at 14:46












I did try the -L option I even copied this .so file to /usr/lib and /usr/local/lib all same.
– THEn
Nov 12 '18 at 15:17




I did try the -L option I even copied this .so file to /usr/lib and /usr/local/lib all same.
– THEn
Nov 12 '18 at 15:17












i am suspecting that this .so file was compiled with Qt libraries and might have different format or structure but I am not sure. I am new to linux.
– THEn
Nov 12 '18 at 15:19




i am suspecting that this .so file was compiled with Qt libraries and might have different format or structure but I am not sure. I am new to linux.
– THEn
Nov 12 '18 at 15:19












1 Answer
1






active

oldest

votes


















2














You are falling foul of an ABI break between the GCC release with libTodoAPI.so
was built and the one with which you are compiling your code. See Dual ABI Troubleshooting




Troubleshooting



If you get linker errors about undefined references to symbols that involve types in the
std::__cxx11 namespace or the tag [abi:cxx11] then it probably indicates that you are
trying to link together object files that were compiled with different values for the
_GLIBCXX_USE_CXX11_ABI macro. This commonly happens when linking to a third-party library that
was compiled with an older version of GCC. If the third-party library cannot be rebuilt
with the new ABI then you will need to recompile your code with the old ABI.







share|improve this answer





















  • Thanks, I added the -D_GLIBCXX_USE_CXX11_ABI=1 option and it went through.
    – THEn
    Nov 12 '18 at 15:35










  • when I try to execute the program I am having "symbol lookup error: /usr/lib/libssl.so.1.0.0: undefined symbol: EVP_idea_cbc" is it different issue?
    – THEn
    Nov 12 '18 at 15:45








  • 1




    @THEn That seems to be a manifestation of this bug
    – Mike Kinghan
    Nov 12 '18 at 15:50











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
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53262292%2fhaving-issue-linking-shared-object-in-linux%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









2














You are falling foul of an ABI break between the GCC release with libTodoAPI.so
was built and the one with which you are compiling your code. See Dual ABI Troubleshooting




Troubleshooting



If you get linker errors about undefined references to symbols that involve types in the
std::__cxx11 namespace or the tag [abi:cxx11] then it probably indicates that you are
trying to link together object files that were compiled with different values for the
_GLIBCXX_USE_CXX11_ABI macro. This commonly happens when linking to a third-party library that
was compiled with an older version of GCC. If the third-party library cannot be rebuilt
with the new ABI then you will need to recompile your code with the old ABI.







share|improve this answer





















  • Thanks, I added the -D_GLIBCXX_USE_CXX11_ABI=1 option and it went through.
    – THEn
    Nov 12 '18 at 15:35










  • when I try to execute the program I am having "symbol lookup error: /usr/lib/libssl.so.1.0.0: undefined symbol: EVP_idea_cbc" is it different issue?
    – THEn
    Nov 12 '18 at 15:45








  • 1




    @THEn That seems to be a manifestation of this bug
    – Mike Kinghan
    Nov 12 '18 at 15:50
















2














You are falling foul of an ABI break between the GCC release with libTodoAPI.so
was built and the one with which you are compiling your code. See Dual ABI Troubleshooting




Troubleshooting



If you get linker errors about undefined references to symbols that involve types in the
std::__cxx11 namespace or the tag [abi:cxx11] then it probably indicates that you are
trying to link together object files that were compiled with different values for the
_GLIBCXX_USE_CXX11_ABI macro. This commonly happens when linking to a third-party library that
was compiled with an older version of GCC. If the third-party library cannot be rebuilt
with the new ABI then you will need to recompile your code with the old ABI.







share|improve this answer





















  • Thanks, I added the -D_GLIBCXX_USE_CXX11_ABI=1 option and it went through.
    – THEn
    Nov 12 '18 at 15:35










  • when I try to execute the program I am having "symbol lookup error: /usr/lib/libssl.so.1.0.0: undefined symbol: EVP_idea_cbc" is it different issue?
    – THEn
    Nov 12 '18 at 15:45








  • 1




    @THEn That seems to be a manifestation of this bug
    – Mike Kinghan
    Nov 12 '18 at 15:50














2












2








2






You are falling foul of an ABI break between the GCC release with libTodoAPI.so
was built and the one with which you are compiling your code. See Dual ABI Troubleshooting




Troubleshooting



If you get linker errors about undefined references to symbols that involve types in the
std::__cxx11 namespace or the tag [abi:cxx11] then it probably indicates that you are
trying to link together object files that were compiled with different values for the
_GLIBCXX_USE_CXX11_ABI macro. This commonly happens when linking to a third-party library that
was compiled with an older version of GCC. If the third-party library cannot be rebuilt
with the new ABI then you will need to recompile your code with the old ABI.







share|improve this answer












You are falling foul of an ABI break between the GCC release with libTodoAPI.so
was built and the one with which you are compiling your code. See Dual ABI Troubleshooting




Troubleshooting



If you get linker errors about undefined references to symbols that involve types in the
std::__cxx11 namespace or the tag [abi:cxx11] then it probably indicates that you are
trying to link together object files that were compiled with different values for the
_GLIBCXX_USE_CXX11_ABI macro. This commonly happens when linking to a third-party library that
was compiled with an older version of GCC. If the third-party library cannot be rebuilt
with the new ABI then you will need to recompile your code with the old ABI.








share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 12 '18 at 15:20









Mike Kinghan

30.1k763112




30.1k763112












  • Thanks, I added the -D_GLIBCXX_USE_CXX11_ABI=1 option and it went through.
    – THEn
    Nov 12 '18 at 15:35










  • when I try to execute the program I am having "symbol lookup error: /usr/lib/libssl.so.1.0.0: undefined symbol: EVP_idea_cbc" is it different issue?
    – THEn
    Nov 12 '18 at 15:45








  • 1




    @THEn That seems to be a manifestation of this bug
    – Mike Kinghan
    Nov 12 '18 at 15:50


















  • Thanks, I added the -D_GLIBCXX_USE_CXX11_ABI=1 option and it went through.
    – THEn
    Nov 12 '18 at 15:35










  • when I try to execute the program I am having "symbol lookup error: /usr/lib/libssl.so.1.0.0: undefined symbol: EVP_idea_cbc" is it different issue?
    – THEn
    Nov 12 '18 at 15:45








  • 1




    @THEn That seems to be a manifestation of this bug
    – Mike Kinghan
    Nov 12 '18 at 15:50
















Thanks, I added the -D_GLIBCXX_USE_CXX11_ABI=1 option and it went through.
– THEn
Nov 12 '18 at 15:35




Thanks, I added the -D_GLIBCXX_USE_CXX11_ABI=1 option and it went through.
– THEn
Nov 12 '18 at 15:35












when I try to execute the program I am having "symbol lookup error: /usr/lib/libssl.so.1.0.0: undefined symbol: EVP_idea_cbc" is it different issue?
– THEn
Nov 12 '18 at 15:45






when I try to execute the program I am having "symbol lookup error: /usr/lib/libssl.so.1.0.0: undefined symbol: EVP_idea_cbc" is it different issue?
– THEn
Nov 12 '18 at 15:45






1




1




@THEn That seems to be a manifestation of this bug
– Mike Kinghan
Nov 12 '18 at 15:50




@THEn That seems to be a manifestation of this bug
– Mike Kinghan
Nov 12 '18 at 15:50


















draft saved

draft discarded




















































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.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • 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.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53262292%2fhaving-issue-linking-shared-object-in-linux%23new-answer', 'question_page');
}
);

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







這個網誌中的熱門文章

Tangent Lines Diagram Along Smooth Curve

Yusuf al-Mu'taman ibn Hud

Zucchini