[cmake-developers] [CMake 0014345]: pkg_check_modules does not honor link command given by pkg-config: leaves out -L flag
Mantis Bug Tracker
mantis at public.kitware.com
Thu Aug 8 04:56:58 EDT 2013
The following issue has been SUBMITTED.
======================================================================
http://www.cmake.org/Bug/view.php?id=14345
======================================================================
Reported By: hyde
Assigned To:
======================================================================
Project: CMake
Issue ID: 14345
Category: (No Category)
Reproducibility: have not tried
Severity: minor
Priority: normal
Status: new
======================================================================
Date Submitted: 2013-08-08 04:56 EDT
Last Modified: 2013-08-08 04:56 EDT
======================================================================
Summary: pkg_check_modules does not honor link command given
by pkg-config: leaves out -L flag
Description:
Situation: A library is installed in a custom location, and it has pkg-config
.pc file installed, `pkg-config --libs ...` gives correct link command. Library
is added to project with "pkg-check-modules" in CMakeLists.txt.
Running cmake succeeds and finds the library. Running make, compilation succeeds
and correct -I option is added.
Bug: only -l option is given for link command, and -L is not given, so linker
does not find the library, and build fails.
Steps to Reproduce:
Minimal example to reproduce provided in attached .zip (please review all files
before running/building, needs root for test lib install!).
Overview of steps:
Have a library in custom location, not in default linker search path.
Have pkg-config file for the library, which gives correct compilation (-I) and
linking flags (-l, -L).
Add the library to a project with pkg_check_modules.
Use a symbol from the library in source code.
Build project.
Linking fails, because -L is not added and linker does not find the library.
Additional Information:
Possibly related issue: http://www.cmake.org/Bug/view.php?id=8644
It's possible there is something wrong with the project files (in the uploaded
.zip), but they are fine as far as I can see. It's also possible there's
something wrong with how cmake is set up in the Linux distro.
Workaround: add to CMakeLists.txt explicit path for the custom library (also
sets RPATH, be aware):
link_directories(${XXXXX_LIBRARY_DIRS})
======================================================================
Issue History
Date Modified Username Field Change
======================================================================
2013-08-08 04:56 hyde New Issue
2013-08-08 04:56 hyde File Added: cmake_Lbug_sscce.zip
======================================================================
More information about the cmake-developers
mailing list