Linking shared library libdvbv5, undefined refrence










2















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?










share|improve this question
























  • 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
















2















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?










share|improve this question
























  • 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














2












2








2








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?










share|improve this question
















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






share|improve this question















share|improve this question













share|improve this question




share|improve this question








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


















  • 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













1 Answer
1






active

oldest

votes


















1














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.






share|improve this answer























  • Solved! thanks a lot!

    – uhsl_m
    Nov 16 '18 at 10:33










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%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









1














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.






share|improve this answer























  • Solved! thanks a lot!

    – uhsl_m
    Nov 16 '18 at 10:33















1














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.






share|improve this answer























  • Solved! thanks a lot!

    – uhsl_m
    Nov 16 '18 at 10:33













1












1








1







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.






share|improve this answer













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.







share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 16 '18 at 4:44









Employed RussianEmployed Russian

127k20173239




127k20173239












  • 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





Solved! thanks a lot!

– uhsl_m
Nov 16 '18 at 10:33



















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.




draft saved


draft discarded














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





















































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







這個網誌中的熱門文章

How to read a connectionString WITH PROVIDER in .NET Core?

Node.js Script on GitHub Pages or Amazon S3

Museum of Modern and Contemporary Art of Trento and Rovereto