gpt4 book ai didi

c++ - 使用 CMake 链接库 OpenSubdiv

转载 作者:行者123 更新时间:2023-11-28 06:21:25 33 4
gpt4 key购买 nike

我正在尝试制作一个使用 Pixar 的 OpenSubdiv 库的 C++ 程序:https://github.com/PixarAnimationStudios/OpenSubdiv

我已经成功构建了库,包括使用该库的“教程”。

OpenSubdiv 和我自己的程序都是用 CMake 构建的(我有一些,但经验不多)。出于测试目的,我有一个 C++ 代码所在的项目文件夹,在这个文件夹中我还有一个 OpenSubdiv 文件夹,我在其中构建了 OpenSubdiv/build 中的库。我用于测试目的的 C++ 代码与 pixar 使用 opensubdiv 提供的教程之一相同,称为“far_tutorial_0.cpp”。本教程在 Opensubdiv 文件夹中编译和工作正常,使用非常长且复杂的 CMake 脚本来安装整个库。但是,当我将它移出 Opensubdiv 文件夹并尝试使用简单的 CMake 脚本进行编译时,我遇到了问题。这是我使用的 CMake 脚本:

cmake_minimum_required (VERSION 2.6)

project (test)

add_executable(test test.cpp)

include_directories(OpenSubdiv/build)
target_link_libraries(test osdCPU)

这设法在没有任何错误消息的情况下编译代码,但是当我尝试执行代码时,它说“加载共享库时出错:libosdCPU.so.3.0.0.beta:无法打开共享对象文件:没有这样的文件或目录”。

我曾尝试将库名称更改为“osdCPU.so.3.0.0.beta”(在编译时出现错误),并且我尝试使用这两个库名称(出现相同的错误)。文件“libosdCPU.so.3.0.0.beta”位于 OpenSubdiv/build/lib 文件夹中,紧挨着“libosdCPU.so”。

有人知道这是怎么回事吗?

最佳答案

您还必须使用 CMake 命令 link_directories 提供库 osdCPU 的位置。

此外,我鼓励您使用像这样的特定变量来形式化您的代码(包括您可以通过命令 ccmake 修改的缓存变量):

set(osdCPU_PATH_DEFAULT "/default/path/to/osdCPU")
set(osdCPU_PATH "${osdCPU_PATH_DEFAULT}" CACHE PATH "Path to osdCPU")
set(osdCPU_INCLUDE_DIRS ${osdCPU_PATH}/include)
set(osdCPU_LIBRARY_DIRS ${osdCPU_PATH}/lib)
set(osdCPU_LIBRARIES osdCPU)

然后就可以调用了

include_directories(${osdCPU_INCLUDE_DIRS})
link_directories(${osdCPU_LIBRARY_DIRS})
# ...
target_link_libraries(test ${osdCPU_LIBRARIES})

关于c++ - 使用 CMake 链接库 OpenSubdiv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29257704/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com