Closed otegami closed 6 months ago
Thank you for sending the PR. It seems that the CI reports errors. They are unrelated to your fix. In this case, I usually ask the PR creater to fix it. However, this case is a little bit complecated. So I will fix it. After I would fix it, please rebase your PR from the updated c_master.
Fixed by #1120 , please rebase the PR.
@redboltz Thank you so much for addressing it. I've just rebased it!
Problem
When
CMAKE_INSTALL_LIBDIR
andCMAKE_INSTALL_INCLUDEDIR
are set to relative paths, themsgpack-c.pc
file generated by CMake improperly configureslibdir
andincludedir
. This leads to incorrect paths that prevent the compiler from locating necessary header and library files.How to reproduce
Build and install
msgpack-c
.Compile
example/simple_c.c
using installed msgpack-c. The following error happens because the linker cannot find paths provided by pkg-config.Expected
Successly compile
example/simple_c.c
using install msgpack-c. We can executesimple_c
like the following.Explain the problem in detail
The generated
msgpack-c.pc
file does not handle relative paths correctly. Here is the result of the incorrect configuration in How to reproduce section. In the followingmsgpack-c.pc
file,libdir
andincludedir
are relative to the current directory, leading to incorrect paths.Solution
Modify the
msgpack-c.pc.in
file to ensure thatlibdir
andincludedir
use absolute paths by prefixing them with ${prefix}/. This change addresses the issue by providing correct paths to the compiler and linker.