cmake로 무언가를 컴파일할 때 pkg-config 경로를 지정하는 방법은 무엇입니까?

cmake로 무언가를 컴파일할 때 pkg-config 경로를 지정하는 방법은 무엇입니까?

av1 코덱을 지원하는 CentOS 7에서 ffmpeg를 빌드하고 싶습니다. 나는 먼저 지시를 따랐다.여기:

git clone https://aomedia.googlesource.com/aom
mkdir aom_build
cd aom_build
cmake ../aom
make
sudo make install

나중에 ffmpeg의 git repo 를 /usr/local/lib64/pkgconfig/aom.pc복제하고 실행하려고 하면 ./configure --enable-libaom ...pkg-config가 aom.pc 파일을 찾을 수 없다고 불평했습니다.

를 실행하면 pkg-config --variable pc_path pkg-configpkg-config가 여기서만 확인하는 것을 볼 수 있기 때문입니다.

/usr/lib64/pkgconfig:/usr/share/pkgconfig

/usr/local/lib64/pkgconfigaom.pc의 위치를 ​​찾지 않습니다 . 지금까지 내가 생각해낸 유일한 해결책은 ffmpeg의 git 디렉토리에서 이를 실행하는 것입니다.

PKG_CONFIG_PATH=$PKG_CONFIG_PATH/usr/local/lib64/pkgconfig: ./configure --enable-libaom ...

이것은 작동하지만 libaom에게 aom.pc를 /usr/lib64/pkgconfig에 먼저 쓰라고 지시하고 싶습니다.

aom을 빌드할 때 cmake나 make에게 /usr/local/lib64/pkgconfig 대신 /usr/lib64/pkgconfig에 aom.pc 파일을 쓰도록 지시할 수 있는 방법이 있습니까?

단계가 있는 다른 ./configure프로젝트에서는 를 사용하여 지정할 수 있지만 ./configure --pkgconfigdir=/usr/lib64/pkgconfigaom 프로젝트에는 스크립트가 없으므로 ./configure여기서 무엇을 해야 할지 잘 모르겠습니다.

답변1

cmake다음과 같이 libaom에 대한 사용자 정의를 실행하고 싶습니다 .

cmake .. -DCMAKE_INSTALL_PREFIX="./extra_ff_mods" -DCMAKE_INSTALL_LIBDIR=lib
make
make install

extra_ff_mods이렇게 하면 다음 하위 폴더가 포함된 폴더에 파일이 배치됩니다 .

- include
|
- lib
  |
   - pkgconfig

필요한 경우 대상 폴더를 변경할 수 있습니다

관련 정보