Linking shared library libdvbv5, undefined refrence
I am using the libdvbv5 library however I am having issues getting my program to compile.
I have the headers in /usr/local/include and there is libdvbv5.so in /usr/local/lib.
The code is extremely simple:
#include "libdvbv5/dvb-dev.h"
void doSatTest()
struct dvb_device *dvb;
struct dvb_dev_list *dvb_dev;
dvb = dvb_dev_alloc();
The eclipse indexer is satisfied that the function "dvb_dev_alloc" exists in the header file "dvb-dev.h" and the file compiles but fails on link
I have stopped using the eclipse builder so i can simplify the build command and pinpoint what is happening.
I try to compile and link using the following command:
g++ sat_test.cpp -ldvbv5
However it fails with:
sat_test.cpp:(.text+0x1f): undefined reference to `dvb_dev_alloc()'
What am I missing?
c++ linker shared-libraries undefined-reference
add a comment |
I am using the libdvbv5 library however I am having issues getting my program to compile.
I have the headers in /usr/local/include and there is libdvbv5.so in /usr/local/lib.
The code is extremely simple:
#include "libdvbv5/dvb-dev.h"
void doSatTest()
struct dvb_device *dvb;
struct dvb_dev_list *dvb_dev;
dvb = dvb_dev_alloc();
The eclipse indexer is satisfied that the function "dvb_dev_alloc" exists in the header file "dvb-dev.h" and the file compiles but fails on link
I have stopped using the eclipse builder so i can simplify the build command and pinpoint what is happening.
I try to compile and link using the following command:
g++ sat_test.cpp -ldvbv5
However it fails with:
sat_test.cpp:(.text+0x1f): undefined reference to `dvb_dev_alloc()'
What am I missing?
c++ linker shared-libraries undefined-reference
And that is the only message you get? On many Linux systems/usr/local
is not part of the standard include or library search paths.
– Some programmer dude
Nov 15 '18 at 14:59
Yes the only message, the full message is:/tmp/cc3BD0pW.o: In function "doSatTest()": sat_test.cpp:(.text+0x1f): undefined reference to "dvb_dev_alloc()" collect2: error: ld returned 1 exit status
– uhsl_m
Nov 15 '18 at 15:26
add a comment |
I am using the libdvbv5 library however I am having issues getting my program to compile.
I have the headers in /usr/local/include and there is libdvbv5.so in /usr/local/lib.
The code is extremely simple:
#include "libdvbv5/dvb-dev.h"
void doSatTest()
struct dvb_device *dvb;
struct dvb_dev_list *dvb_dev;
dvb = dvb_dev_alloc();
The eclipse indexer is satisfied that the function "dvb_dev_alloc" exists in the header file "dvb-dev.h" and the file compiles but fails on link
I have stopped using the eclipse builder so i can simplify the build command and pinpoint what is happening.
I try to compile and link using the following command:
g++ sat_test.cpp -ldvbv5
However it fails with:
sat_test.cpp:(.text+0x1f): undefined reference to `dvb_dev_alloc()'
What am I missing?
c++ linker shared-libraries undefined-reference
I am using the libdvbv5 library however I am having issues getting my program to compile.
I have the headers in /usr/local/include and there is libdvbv5.so in /usr/local/lib.
The code is extremely simple:
#include "libdvbv5/dvb-dev.h"
void doSatTest()
struct dvb_device *dvb;
struct dvb_dev_list *dvb_dev;
dvb = dvb_dev_alloc();
The eclipse indexer is satisfied that the function "dvb_dev_alloc" exists in the header file "dvb-dev.h" and the file compiles but fails on link
I have stopped using the eclipse builder so i can simplify the build command and pinpoint what is happening.
I try to compile and link using the following command:
g++ sat_test.cpp -ldvbv5
However it fails with:
sat_test.cpp:(.text+0x1f): undefined reference to `dvb_dev_alloc()'
What am I missing?
c++ linker shared-libraries undefined-reference
c++ linker shared-libraries undefined-reference
edited Nov 15 '18 at 17:22
uhsl_m
asked Nov 15 '18 at 14:55
uhsl_muhsl_m
8610
8610
And that is the only message you get? On many Linux systems/usr/local
is not part of the standard include or library search paths.
– Some programmer dude
Nov 15 '18 at 14:59
Yes the only message, the full message is:/tmp/cc3BD0pW.o: In function "doSatTest()": sat_test.cpp:(.text+0x1f): undefined reference to "dvb_dev_alloc()" collect2: error: ld returned 1 exit status
– uhsl_m
Nov 15 '18 at 15:26
add a comment |
And that is the only message you get? On many Linux systems/usr/local
is not part of the standard include or library search paths.
– Some programmer dude
Nov 15 '18 at 14:59
Yes the only message, the full message is:/tmp/cc3BD0pW.o: In function "doSatTest()": sat_test.cpp:(.text+0x1f): undefined reference to "dvb_dev_alloc()" collect2: error: ld returned 1 exit status
– uhsl_m
Nov 15 '18 at 15:26
And that is the only message you get? On many Linux systems
/usr/local
is not part of the standard include or library search paths.– Some programmer dude
Nov 15 '18 at 14:59
And that is the only message you get? On many Linux systems
/usr/local
is not part of the standard include or library search paths.– Some programmer dude
Nov 15 '18 at 14:59
Yes the only message, the full message is:
/tmp/cc3BD0pW.o: In function "doSatTest()": sat_test.cpp:(.text+0x1f): undefined reference to "dvb_dev_alloc()" collect2: error: ld returned 1 exit status
– uhsl_m
Nov 15 '18 at 15:26
Yes the only message, the full message is:
/tmp/cc3BD0pW.o: In function "doSatTest()": sat_test.cpp:(.text+0x1f): undefined reference to "dvb_dev_alloc()" collect2: error: ld returned 1 exit status
– uhsl_m
Nov 15 '18 at 15:26
add a comment |
1 Answer
1
active
oldest
votes
The problem is that the the libdvbv5/dvb-dev.h
does not provide a proper C++
prototype, and you are including it into a .cpp
file.
The fix is to do this:
extern "C"
#include "libdvbv5/dvb-dev.h"
... rest as before.
With above fix, your program will link fine.
A more detailed explanation here.
Solved! thanks a lot!
– uhsl_m
Nov 16 '18 at 10:33
add a comment |
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%2f53322164%2flinking-shared-library-libdvbv5-undefined-refrence%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
The problem is that the the libdvbv5/dvb-dev.h
does not provide a proper C++
prototype, and you are including it into a .cpp
file.
The fix is to do this:
extern "C"
#include "libdvbv5/dvb-dev.h"
... rest as before.
With above fix, your program will link fine.
A more detailed explanation here.
Solved! thanks a lot!
– uhsl_m
Nov 16 '18 at 10:33
add a comment |
The problem is that the the libdvbv5/dvb-dev.h
does not provide a proper C++
prototype, and you are including it into a .cpp
file.
The fix is to do this:
extern "C"
#include "libdvbv5/dvb-dev.h"
... rest as before.
With above fix, your program will link fine.
A more detailed explanation here.
Solved! thanks a lot!
– uhsl_m
Nov 16 '18 at 10:33
add a comment |
The problem is that the the libdvbv5/dvb-dev.h
does not provide a proper C++
prototype, and you are including it into a .cpp
file.
The fix is to do this:
extern "C"
#include "libdvbv5/dvb-dev.h"
... rest as before.
With above fix, your program will link fine.
A more detailed explanation here.
The problem is that the the libdvbv5/dvb-dev.h
does not provide a proper C++
prototype, and you are including it into a .cpp
file.
The fix is to do this:
extern "C"
#include "libdvbv5/dvb-dev.h"
... rest as before.
With above fix, your program will link fine.
A more detailed explanation here.
answered Nov 16 '18 at 4:44
Employed RussianEmployed Russian
127k20173239
127k20173239
Solved! thanks a lot!
– uhsl_m
Nov 16 '18 at 10:33
add a comment |
Solved! thanks a lot!
– uhsl_m
Nov 16 '18 at 10:33
Solved! thanks a lot!
– uhsl_m
Nov 16 '18 at 10:33
Solved! thanks a lot!
– uhsl_m
Nov 16 '18 at 10:33
add a comment |
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%2f53322164%2flinking-shared-library-libdvbv5-undefined-refrence%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
And that is the only message you get? On many Linux systems
/usr/local
is not part of the standard include or library search paths.– Some programmer dude
Nov 15 '18 at 14:59
Yes the only message, the full message is:
/tmp/cc3BD0pW.o: In function "doSatTest()": sat_test.cpp:(.text+0x1f): undefined reference to "dvb_dev_alloc()" collect2: error: ld returned 1 exit status
– uhsl_m
Nov 15 '18 at 15:26