Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cmake 查找库的“我的库”的自定义路径_Cmake - Fatal编程技术网

Cmake 查找库的“我的库”的自定义路径

Cmake 查找库的“我的库”的自定义路径,cmake,Cmake,我正在尝试在Linux上编译(oiio),但它很混乱,因为我对cmake几乎一无所知。我不想,也不能将它们直接安装在我的计算机上的/usr/local/目录中,这就是问题所在。通过在每个库目录中执行以下bash命令,我成功编译了依赖项: export workingdir=<path_to_my_project> ./configure --prefix=$workingdir/sdks/deploy make install 问题是oiio库目录中没有可用的/configure,

我正在尝试在Linux上编译(oiio),但它很混乱,因为我对
cmake
几乎一无所知。我不想,也不能将它们直接安装在我的计算机上的
/usr/local/
目录中,这就是问题所在。通过在每个库目录中执行以下bash命令,我成功编译了依赖项:

export workingdir=<path_to_my_project>
./configure --prefix=$workingdir/sdks/deploy
make install
问题是oiio库目录中没有可用的
/configure
,因此我不知道如何设置前缀路径,当我执行make命令时,我出现如下错误:

CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:108 (message):
Could NOT find PNG (missing: PNG_LIBRARY) (found version "1.6.21")
Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:315 (_FPHSA_FAILURE_MESSAGE)
   /usr/share/cmake/Modules/FindPNG.cmake:105 (find_package_handle_standard_args)
   src/libOpenImageIO/CMakeLists.txt:120 (find_package)
因此,我设置了变量,它没有错误,但这不是干净的,我不确定我的库是否被正确引用(如果我设置了变量内容,它仍然在工作…)

但是它仍然会找到
cmake
文件,因为其他错误正确地引用了我的文件,如果我在
cmake
文件中打印了一些内容,它会在我运行
make
命令时显示出来

据我所知,我在oiio目录中运行的命令是
make
,但我希望能告诉
find_library
函数在其他地方查找。我可以用其他参数调用函数,但无法使用自己的FindXXX.cmake文件

在oiio存储库的文件第43行中,它说为自定义库设置环境变量,如
PNGDIR
,但它应该指向部署目录还是构建目录?他们说要查看CMake配置输出,也许要知道要设置哪些环境变量,但我不知道他们说的是什么文件

我试着设置PNGDIR,但它不起作用,如何知道变量名是否应该是PNGDIR?它也可以是PNGROOT

export PNGDIR=<workingdir>/sdks/deploy  # doesn't work
export PNGDIR=<workingdir>/sdks/build/png  # doesn't work
export PNGDIR=/sdks/deploy#不起作用
导出PNGDIR=/sdks/build/png#不起作用

如果有人能帮助我,那就太好了,我需要编译这个库来使用它,希望有人能理解我。

使用
CMAKE\u PREFIX\u PATH
来指示
find\u library
find\u PATH
等应该看一下()


PNGDIR
这样的东西不应该再被使用,它被认为是为了向后兼容而保留的遗留产品。CMake开发人员拒绝使用CMake提供的FindXXX补丁来添加
XXX\u DIR
XXX\u ROOT

使用
CMake\u PREFIX\u PATH
来指示
查找库
查找路径
等应该查看的路径()


PNGDIR
这样的东西不应该再被使用,它被认为是为了向后兼容而保留的遗留产品。CMake开发人员拒绝使用CMake提供的用于添加
XXX\u目录
XXX\u根
的FindXXX补丁。

使用
CMake\u前缀路径
。像
PNGDIR
这样的东西不应该再使用了。它似乎起作用了,我现在有了新的错误,非常容易理解,谢谢:)使用
CMAKE\u PREFIX\u PATH
。像
PNGDIR
这样的东西不应该再使用了。它似乎起作用了,我现在有了新的错误,非常容易理解,谢谢:)
set (PNG_PNG_INCLUDE_DIR "<workingdir>/sdks/deploy/include/libpng16")
set (PNG_LIBRARY_DIR "<workingdir>/sdks/deploy/lib")
CMake Error at src/cmake/modules/FindPNG.cmake:104 (include):
  include could not find load file:

    <workingdir>/sdks/build/oiio/src/cmake/modules/FindPackageHandleStandardArgs.cmake
Call Stack (most recent call first):
  src/libOpenImageIO/CMakeLists.txt:120 (find_package)
export PNGDIR=<workingdir>/sdks/deploy  # doesn't work
export PNGDIR=<workingdir>/sdks/build/png  # doesn't work