Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

added math lib for linux #80

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

brccabral
Copy link

To compile the example on Ubuntu 24.04 I had to add lib m

@baylej
Copy link
Owner

baylej commented Oct 6, 2024

As I run Fedora, I had to try this using a docker container:

And indeed, in ubuntu 24.04 and raylib 4.5.0 static (built from github) I get this error as well:

[email protected]:~/tmx/examples/raylib/build# make
[ 50%] Building C object CMakeFiles/raylib_example.dir/raylib.c.o
[100%] Linking C executable raylib_example
/usr/bin/cc CMakeFiles/raylib_example.dir/raylib.c.o -o raylib_example  -Wl,-rpath,/usr/local/lib /usr/local/lib/libtmx.a /usr/local/lib/libraylib.a /usr/lib/x86_64-linux-gnu/libX11.so /usr/lib/x86_64-linux-gnu/libxml2.so -L/usr/local/lib -lraylib
/usr/bin/ld: /usr/local/lib/libraylib.a(rcore.c.o): undefined reference to symbol 'floorf@@GLIBC_2.2.5'
/usr/bin/ld: /lib/x86_64-linux-gnu/libm.so.6: error adding symbols: DSO missing from command line

It seems raylib does not properly export its dependencies in cmake configs and pkg-config when statically linked.
Raylib does include math.h in header src/rlgl.h, so this is a direct dependency of Raylib.

I don't have this issue on fedora 39 (where raylib is provided as a shared object):

baylej@fedora39 ~/Projects/tmx/examples/raylib/build $ make
-- Configuring done (0.1s)
-- Generating done (0.0s)
-- Build files have been written to: /home/baylej/Projects/tmx/examples/raylib/build
[ 50%] Building C object CMakeFiles/raylib_example.dir/raylib.c.o
[100%] Linking C executable raylib_example
/usr/bin/cc -g CMakeFiles/raylib_example.dir/raylib.c.o -o raylib_example  /home/baylej/.local/lib64/libtmx.a /usr/lib64/libraylib.so /usr/lib64/libX11.so /usr/lib64/libz.so /usr/lib64/libxml2.so -L/usr/lib64 -lraylib 
[100%] Built target raylib_example

So, on ubuntu24 I tried to reinstall raylib as a shared object
And then the raylib_example does build:

[email protected]:~/tmx/examples/raylib/build# make
-- Configuring done (0.0s)
-- Generating done (0.0s)
-- Build files have been written to: /root/tmx/examples/raylib/build
[ 50%] Building C object CMakeFiles/raylib_example.dir/raylib.c.o
[100%] Linking C executable raylib_example
/usr/bin/cc CMakeFiles/raylib_example.dir/raylib.c.o -o raylib_example  -Wl,-rpath,/usr/local/lib /usr/local/lib/libtmx.a /usr/local/lib/libraylib.so /usr/lib/x86_64-linux-gnu/libX11.so /usr/lib/x86_64-linux-gnu/libxml2.so -L/usr/local/lib -lraylib 
[100%] Built target raylib_example

To my understanding, the issue lies in the export files of raylib, not in the build configuration of the raylib example.
But I may be wrong! so maybe the maintainer of Raylib (@raysan5) could share his input on this issue (thanks).

@baylej baylej added the bug label Oct 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants