How to tell Cabal where pkg-config packages are located? - cabal

Cabal fails to install ffmpeg-light. It gives the error:
cabal: The pkg-config package libavutil is required but it could not be found.
Failed to install ffmpeg-light-0.7.1.1
cabal: Error: some packages failed to install:
ffmpeg-light-0.7.1.1 failed during the configure step. The exception was:
ExitFailure 1
The pkg-config package is located at:
/home/timothy/ffmpeg_build/lib/pkgconfig
How do I tell Cabal where to look?

The PKG_CONFIG_PATH variable tells the system where to look for pkg-config packages. It can be set by: export PKG_CONFIG_PATH = /pkg-config-directory . In this example:
export PKG_CONFIG_PATH=/home/timothy/ffmpeg_build/lib/pkgconfig

Related

In Debian CMake cant find 'libmosquitto'

Im trying of compile a cmake project of C code in a Raspberry Pi with Debian 10, the CMakeList.txt search for package first, when ask for 'libmosquitto' show the error:
Checking for module 'libmosquitto'
No package 'libmosquitto' found.
Already have installed this package with the command:
sudo apt-get install libmosquitto-dev
Before this, the CMake show another error for the package json-c, but after install it with apt-get install, the problem gone, but now for this library the CMake not recognize mosquitto.
locate libmosquitto.pc
and then add this path to PKG_CONFIG_PATH
export PKG_CONFIG_PATH="Actual_Path to libmosquitto.pc"
This worked for me.

Fatal error when building sqlcipher3 from macOS ('sqlcipher/sqlite3.h' file not found)

I have been trying to build sqlcipher3 on MacOS with the following command:
git clone https://github.com/coleifer/sqlcipher3 && cd sqlcipher3
python3 setup.py build
I am getting the following error:
$ python3 setup.py build
running build
running build_py
creating build
creating build/lib.macosx-10.14-x86_64-3.7
creating build/lib.macosx-10.14-x86_64-3.7/sqlcipher3
copying sqlcipher3/__init__.py -> build/lib.macosx-10.14-x86_64-3.7/sqlcipher3
copying sqlcipher3/dbapi2.py -> build/lib.macosx-10.14-x86_64-3.7/sqlcipher3
running build_ext
Builds a C extension linking against libsqlcipher library
building 'sqlcipher3._sqlite3' extension
creating build/temp.macosx-10.14-x86_64-3.7
creating build/temp.macosx-10.14-x86_64-3.7/src
xcrun -sdk macosx clang -arch x86_64 -DNDEBUG -g -fwrapv -O3 -Wall -Qunused-arguments -DMODULE_NAME="sqlcipher3.dbapi2" -I/usr/include -I/Users/gab/Downloads/testbuild/venv/include -I/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/include/python3.7m -c src/module.c -o build/temp.macosx-10.14-x86_64-3.7/src/module.o
In file included from src/module.c:24:
src/connection.h:34:10: fatal error: 'sqlcipher/sqlite3.h' file not found
#include "sqlcipher/sqlite3.h"
^~~~~~~~~~~~~~~~~~~~~
1 error generated.
error: command 'xcrun' failed with exit status 1
But sqlcypher is correctly installed with brew:
$ brew install sqlcipher
Warning: sqlcipher 4.4.2 is already installed and up-to-date
To reinstall 4.4.2, run `brew reinstall sqlcipher`
And sqlite3.h was added in the process:
$ find /usr/local/Cellar -name sqlite3.h
/usr/local/Cellar/sqlite/3.33.0/include/sqlite3.h
/usr/local/Cellar/sqlite/3.34.0/include/sqlite3.h
/usr/local/Cellar/sqlcipher/4.4.2/include/sqlcipher/sqlite3.h
Is there something I am missing? Should I be adding a path flag when running python3 setup.py build?
I would
C_INCLUDE_PATH=/usr/local/Cellar/sqlcipher/4.4.2/include LIBRARY_PATH=/usr/local/Cellar/sqlcipher/4.4.2/lib python3 setup.py build
give a try.
I'm not too sure about the cause of the problem,
but have you considered manualy downloading it from github and setting it near the code that uses that?
I know it's probably not the solution you were searching for but it might be all it takes...
I think you’re more likely to find an answer to this on the SQLCipher discussion board.

Install ffmpeg-light with cabal

I want to install the ffmpeg-light library from hackage via cabal on Windows 10 (64 bit). So I downloaded ffmpeg and extracted it to C:\FFmpeg.
At first pkg-config was complaining that it could not find various packages. I solved this problem with .pc files.
When I tried to use the command: cabal install ffmpeg-light cabal complained about missing C-libraries, being exactly those for which I created the .pc files.
Then I tried the command: cabal install ffmpeg-light --extra-lib-dirs=C:\FFmpeg\lib. Now I have a different error message, which says:
Enums.hsc:7:32: fatal error: libavcodec/avcodec.h: No such file or directory
Edit:
Then I tried the following command:
cabal install ffmpeg-light --extra-lib-dirs=C:\FFmpeg\lib \
--extra-include-dirs=C:\FFmpeg\include
Now first the compiler gives some warnings about deprecated functions in ffmpeg and redundant imports in ffmpeg-light, but compiles 11 of 11. But the build is still not successfull.
In-place registering ffmpeg-light-0.11.1...
setup-Simple-Cabal-1.22.5.0-x86_64-windows-ghc-7.10.3.exe:
'C:\Haskell\bin\ghc-pkg.exe' exited with an error:
ffmpeg-light-0.11.1: Warning: haddock-interfaces:
C:\Users\HOLEYC~1\AppData\Local\Temp\cabal-tmp-2824\ffmpeg-light-0.11.1\dist\doc\html\ffmpeg-light\ffmpeg-light.haddock
doesn't exist or isn't a file
ffmpeg-light-0.11.1: Warning: haddock-html:
C:\Users\HOLEYC~1\AppData\Local\Temp\cabal-tmp-2824\ffmpeg-light-0.11.1\dist\doc\html\ffmpeg-light
doesn't exist or isn't a directory
ffmpeg-light-0.11.1: library-dirs: C:FFmpeglib is a relative path which makes
no sense (as there is nothing for it to be relative to). You can make paths
relative to the package database itself by using ${pkgroot}. (use --force to
override)
ffmpeg-light-0.11.1: include-dirs: C:FFmpeginclude is a relative path which
makes no sense (as there is nothing for it to be relative to). You can make
paths relative to the package database itself by using ${pkgroot}. (use
--force to override)
cabal: Error: some packages failed to install:
ffmpeg-light-0.11.1 failed during the building phase. The exception was:
ExitFailure 1
Some additional information:
cabal version: cabal-install version 1.22.6.0
using version 1.22.5.0 of the Cabal library
gcc version of my installed Haskell platform: 5.2.0
Example .pc file I used for pkg-config:
Name: libavcodec
Description: Library for ffmpeg
Version: 57
Cflags: -IC:\FFmpeg\include
Libs: -LC:\FFmpeg\lib -llibavcodec
OK. I figured it out. The --ghc-pkg-options="--force" option was needed.
cabal install ffmpeg-light --extra-lib-dirs=C:\FFmpeg\lib --extra-include-dirs=C:\FFmpeg\include --ghc-pkg-options="--force"

Package path error when trying to install lib package in C

I am trying to install libpackedobjects on my fedora 17. The path that I am trying to install it on is home/libpackedobjects. The steps that I am following are:
git clone git://gitorious.org/libpackedobjectsd/libpackedobjectsd.git
cd libpackedobjectsd
autoreconf -i
./configure
when I am trying to run the ./configure I am getting error:
checking for LIBPACKEDOBJECTS... no
configure: error: Package requirements (libpackedobjects) were not met:
No package 'libpackedobjects' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables LIBPACKEDOBJECTS_CFLAGS
and LIBPACKEDOBJECTS_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
I do understand that the path can not be found, but do not know how to repair the problem. Any suggestions?
As evident from your error report:
checking for LIBPACKEDOBJECTS... no
configure: error: Package requirements (libpackedobjects) were not met:
No package 'libpackedobjects' found
Hence, You have to install the packages libpackedobjects and libXml2to install the libpackedobjectsd.
If you still get this error after installing the depenedent packages, there might be a PATH issue or linking issue.

Brew doctor: dyld: Library not loaded & Error: No available formula for zlib

When I brew doctor I get the following errors:
dyld: Library not loaded: /usr/lib/libltdl.7.dylib
Referenced from: /usr/local/bin/php
Reason: image not found
Error: No available formula for zlib
The file libltdl.7.dylib is not in my /usr/lib directory, but there are several other .dylib files.
I'm running 10.8.1 with the latest version of Xcode (4.4.1) and its Command Line Tools installed.
Any idea how to solve these errors?
Try to re-install libtool by:
brew reinstall libtool --universal && brew unlink libtool && brew link libtool
If that doesn't help, try removing libtool completely, and then retry the steps above:
brew uninstall libtool
If it still doesn't work after trying the steps above, check to see if you have the DYLD_FALLBACK_LIBRARY_PATH variable defined somewhere on the system (e.g. ~/.profile) and try unsetting it before trying the steps above again.
Other commands which could be useful for identifying the issue:
$ libtool --version
$ whereis libtool
$ set | grep DYLD_FALLBACK_LIBRARY_PATH
$ echo $DYLD_FALLBACK_LIBRARY_PATH
For me it works with:
sudo ln -s /usr/local/Cellar/libtool/2.4.2/lib/libltdl.7.dylib /usr/local/lib/libltdl.7.dylib
if you have an error about pcre like this :
dyld: Library not loaded: /usr/local/opt/pcre/lib/libpcre.1.dylib
Referenced from: /usr/local/Cellar/watchman/4.7.0/libexec/bin/watchman
Reason: image not found
Abort trap: 6
you need to link pcre.
brew link --overwrite pcre
Try:
brew tap homebrew/dupes
See: https://github.com/josegonzalez/homebrew-php/pull/219
None of them work I personally reinstalled Watchman like so:
brew uninstall watchman
brew reinstall watchman
The following worked for me:
brew uninstall --ignore-dependencies node
brew install node
Found the hint in this article: https://goulet.dev/posts/node-dyld-library-not-loaded-icu4c/
xcode-select --install
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install pcre
brew install libtool
that's it.
In my case I solve it with this link's file:
ln -s /usr/local/Cellar/jpeg/8d/lib/libjpeg.8.dylib /usr/local/opt/jpeg/lib/libjpeg.8.dyli
The response from kenorb is what worked for me + a little extra for safe measure:
brew update
freetype didn't have symlinks so:
brew link freetype
various other solutions I tried:
brew remove imagemagick
brew link jpeg libpng
brew install imagemagick
brew install libtiff
brew uninstall libtool
brew reinstall libtool --universal && brew unlink libtool && brew link libtool
There's a good chance that this wasn't all necessary if I had found
brew uninstall libtool
brew reinstall libtool --universal && brew unlink libtool && brew link libtool
first. But I thought I would post my full process in case anyone runs into issues
For me, I needed to fix XQuartz as brew doctor asked me too:
Warning: Your XQuartz (2.7.6) is outdated
Please install XQuartz 2.7.8:
https://xquartz.macosforge.org
It worked after that.
I experienced the same error in the process of installing AFNI. Installing PyQt, as suggested here, fixed the issue resulting from OSX 10.11 compatibility.
brew install pyqt
I had:
% neato
dyld: Library not loaded: /usr/lib/libltdl.7.dylib
Referenced from: /Users/me/Documents/dev/anaconda/bin/neato
Reason: image not found
zsh: abort neato
And the fix was
% echo $DYLD_FALLBACK_LIBRARY_PATH
/Users/me/anaconda/lib:/usr/lib
% export DYLD_FALLBACK_LIBRARY_PATH=$DYLD_FALLBACK_LIBRARY_PATH:/usr/local/lib
(and then add the export to a .bashrc or similar).
First :
brew uninstall libffi
Then :
brew install libffi
In my case I had
dyld: Library not loaded: /usr/local/opt/python/Frameworks/Python.framework/Versions/3.7/Python
Referenced from: /usr/local/Cellar/macvim/8.2-162/MacVim.app/Contents/MacOS/Vim
Reason: image not found
brew unlink python && brew link python and boom, fixed.

Resources