Missing -lrt linker flag on Ubuntu
yhhshb opened this issue · 3 comments
Hi @jermp ,
When I compile Fulgor on my machine (Kubuntu 22.04) the compilation fails with some errors that boil down to:
ggcat_api.18b922c2ecd02292-cgu.03:(.text._ZN3std10sys_common9backtrace28__rust_begin_short_backtrace17hf5334377f827e0d6E+0x4d4): undefined reference to
clock_gettime'`
I think this is due to the linker flag -lrt missing when building on linux.
Note that on macOS adding -lrt throws errors since macOS does not require the library to be explicitly linked.
Best regards,
Yoshihiro Shibuya
Hi @yhhshb,
in the readme, we have this:
# add the rt flag if requested by the user
if (LINK_LIBRT)
if (APPLE)
MESSAGE(STATUS "linking with rt shoul not be necessary on OSX; not adding rt")
else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -lrt")
endif()
endif()
So I think you should compile with -DLINK_LIBRT=On
. Can you please try?
Thanks!
Hi @jermp,
Yes, now that you pointed it out I see it in the CMakeLists.txt (not the Readme).
This solves the issue, but may I suggest to put the rt flag as an optional target_link_library just after the current block of linking options?
if (LINUX)
target_link_libraries(fulgor rt)
endif()
This has the advantage of not requiring the user to remember adding the -DLINK_LIBRT=On option.
Done, thank you!