NVIDIA / Q2RTX

NVIDIA’s implementation of RTX ray-tracing in Quake II
Other
1.21k stars 180 forks source link

Failed to compile client target due to missing libm linkage #400

Closed runlevel5 closed 2 months ago

runlevel5 commented 2 months ago

What?

When compiled with system openal-soft headers (v1.23.1) on Linux environment, I ran into following errors:

/usr/bin/ld: CMakeFiles/client.dir/client/entities.c.o: undefined reference to symbol 'atan2@@GLIBC_2.17'
/usr/bin/ld: /usr/lib64/libm.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[2]: *** [src/CMakeFiles/client.dir/build.make:2961: /home/tle/Work/Q2RTX/q2rtx] Error 1
make[1]: *** [CMakeFiles/Makefile2:533: src/CMakeFiles/client.dir/all] Error 2

How to reproduce?

$  sudo dnf info openal-soft-devel
[sudo] password for tle:
Name         : openal-soft-devel
Version      : 1.23.1

$ gcc --version
gcc (GCC) 14.0.1 20240316 (Red Hat 14.0.1-0)

$ cmake --version
cmake version 3.28.2

$ cmake .. -DCMAKE_BUILD_TYPE=Release -DUSE_SYSTEM_OPENAL=true && make -j256