pkg-config cannot find .pc files although they are in the path

大憨熊 提交于 2020-01-10 18:53:27

问题


I am seeing a strange issue with pkg-config on Mac OSX-Lion. When running the python setup for module that I downloaded I receive the following error:

aspen:python toddysm$ sudo ./setup.py install
Password:
`pkg-config --libs --cflags cld` returns in error: 
Package cld was not found in the pkg-config search path.
Perhaps you should add the directory containing `cld.pc'
to the PKG_CONFIG_PATH environment variable
No package 'cld' found

The `cld` C++ library is absent from this system. Please install it.

However when checking in the /usr/local/lib folder I see the libs and the .pc file is in the pkgconfig subfolder

aspen:~ toddysm$ cd /usr/local/lib/
aspen:lib toddysm$ ls -al
total 2640
drwxr-xr-x  6 root  wheel      204 Jul  2 17:38 .
drwxr-xr-x  9 root  wheel      306 Jul  2 15:17 ..
-rwxr-xr-x  1 root  wheel  1339516 Jul  2 17:38 libcld.0.dylib
lrwxr-xr-x  1 root  wheel       14 Jul  2 17:38 libcld.dylib -> libcld.0.dylib
-rwxr-xr-x  1 root  wheel      918 Jul  2 17:38 libcld.la
drwxr-xr-x  3 root  wheel      102 Jul  2 17:38 pkgconfig
aspen:lib toddysm$ cd pkgconfig/
aspen:pkgconfig toddysm$ ls -al
total 8
drwxr-xr-x  3 root  wheel  102 Jul  2 17:38 .
drwxr-xr-x  6 root  wheel  204 Jul  2 17:38 ..
-rw-r--r--  1 root  wheel  279 Jul  2 17:38 cld.pc

Setting PKG_CONFIG_PATH to point to /usr/local/lib/ using the command line doesn't help. Setting it into ~/.bash_profile for some reason makes pkg-config unrecognizable as command.

My assumption is that I am missing some dependency but not sure what. When trying the same on Linux I was missing the Python Dev package python2.7-dev but I am not sure how to check for this on Mac (whether is there or not).

Any help will be appreciated.


回答1:


You can list the directories pkg-config looks in by default using:

pkg-config --variable pc_path pkg-config

PKG_CONFIG_PATH needs the full /usr/local/lib/pkgconfig pathname appended to the variable.




回答2:


Environment variables need to be export'ed to be useful for commands. Try

$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
$ pkg-config --libs --cflags cld



回答3:


It seems that although the PKG_CONFIG_PATH was properly set the Python script was not picking it up. Looking at the script it starts pkg-config in a subprocess and I am not sure whether the environment variable information is passed to the subprocess. Nevertheless I solved the issue by copying the libraries and the .cp file to /opt/local/lib/ which is the default folder where pkg-config looks.




回答4:


you might try as follows:

brew install pkg-config
brew install libvirt

and it works for me.



来源:https://stackoverflow.com/questions/11303730/pkg-config-cannot-find-pc-files-although-they-are-in-the-path

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!