Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Library changes
#1
The book code was written in Rasbian Jessie, which updated in Nov 2017 to Stretch, I wasn't able to make edits to the book at that point as it was being prepped by the publisher.

For the most part you will not notice any real issues, but where Jessie only needed bcm_host, GLESv2 and EGL libs, to get graphics up and running, on Stretch a few more files are needed and you won't get code to build without them.
 
So make sure you have these when you are entering the 1st couple of projects

GLESv2_static EGL_static vchiq_arm vcos khrn_static bcm_host pthread

If you just update/upgraded your old Jessie version you will find you still have the old libs and they will still work just fine, you have in fact a hybrid of Jessie and Stretch, but the sooner you update to the new version and the new libs the better.
Brian Beuken
Lecturer in Game Programming at Breda University of Applied Sciences.
Author of The Fundamentals of C/C++ Game Programming: Using Target-based Development on SBC's 



Reply
#2
As a small point to note, other version of Linux still use the old names (so far)
Brian Beuken
Lecturer in Game Programming at Breda University of Applied Sciences.
Author of The Fundamentals of C/C++ Game Programming: Using Target-based Development on SBC's 



Reply
#3
and as a 2nd small point to note, if you plan to use OpenGLES extensions you will also need to include libld.so which is just entered as ld
Brian Beuken
Lecturer in Game Programming at Breda University of Applied Sciences.
Author of The Fundamentals of C/C++ Game Programming: Using Target-based Development on SBC's 



Reply
#4
Hello Brian,

Thanks for this warning, it is very important.

Unfortunately I still have not been able to make progress after this part of the book (more than a month, I am a student, this is a hobby, do not judge me).

I attach to this reply two images of the errors I get after setting up the libraries. 

Basically I have tweaked the file names, the paths, the absolute paths, etc., to make it match with what the error seems to point, but so far haven't figured it out. I believe my issue lies on the Library Names. The ones on my RaspPiB3+ (Raspbian 4.14.79-v7+) are under /opt/vc/lib. I also attach a print-screen of the directory structure.

I would appreciate any advice, I am running this on Windows 10 with Visual Studio 2017.

Some print-screens of a working configuration with a similar setup to mine would be HIGHLY appreciated.


Kind Regards,
Sebastian!


Attached Files Thumbnail(s)
           
Reply
#5
(03-31-2019, 10:17 AM)jzarra34 Wrote: Hello Brian,

Thanks for this warning, it is very important.

Unfortunately I still have not been able to make progress after this part of the book (more than a month, I am a student, this is a hobby, do not judge me).

I attach to this reply two images of the errors I get after setting up the libraries. 

Basically I have tweaked the file names, the paths, the absolute paths, etc., to make it match with what the error seems to point, but so far haven't figured it out. I believe my issue lies on the Library Names. The ones on my RaspPiB3+ (Raspbian 4.14.79-v7+) are under /opt/vc/lib. I also attach a print-screen of the directory structure.

I would appreciate any advice, I am running this on Windows 10 with Visual Studio 2017.

Some print-screens of a working configuration with a similar setup to mine would be HIGHLY appreciated.


Kind Regards,
Sebastian!
Hey Sebastian
no judgement, we all get confused at the start.
In your case thats quite a nice bug but I think it may be due to you naming the libs with the lib prefix and the .a extension, don't add the "lib" or ".a" part, just GLESv2_static not libGLESv2_static.a that is the name of the file, but the name of the library is just GLESv2_static so thats what we use in Linux builds such as Raspbian.

Same for the other libs, you need all of them in the latest versions of Raspbian.

When it asks for the name of the lib you don't need to give any more info than the post above gives.
If that does not work, please zip up your project and send it to me, I'll debug it for you and let you know

If it does work, post here and let me know.
Brian Beuken
Lecturer in Game Programming at Breda University of Applied Sciences.
Author of The Fundamentals of C/C++ Game Programming: Using Target-based Development on SBC's 



Reply
#6
Also if you are working exclusivly on Rasbian you can replace the EGL_static and GLESv2_static with

brcmEGL and brcmGLESv2

These will provide the more direct broadcom EGL and GLESv2 libraries which are a little more optimised for the Raspberry Pi. These libs do seem to be a little faster but the difference is quite small.. but every little helps :
Brian Beuken
Lecturer in Game Programming at Breda University of Applied Sciences.
Author of The Fundamentals of C/C++ Game Programming: Using Target-based Development on SBC's 



Reply
#7
Now.... if you are working on a Pi4, there need to be a few changes, listed elsewhere
Brian Beuken
Lecturer in Game Programming at Breda University of Applied Sciences.
Author of The Fundamentals of C/C++ Game Programming: Using Target-based Development on SBC's 



Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)