我运行了以下命令但不知道它安装在哪里
sudo apt-get install opencl-headers
我以为它放在这里:/usr/include
但它可能已经到这里:/usr/include/x86_64-linux-gnu 我尝试了以下两种方法
-DOPENCL_INCLUDE_DIRS=/usr/include/x86_64-linux-gnu
我得到了重复的定义,例如 time_t 和 time64_t,因此看起来上述两个都不是 opencl 的实际包含
答案1
我们来看一下软件包描述:
$ apt 显示 opencl 标头
... 此元包依赖于由 Khronos Group Inc. 发布的提供 OpenCL API 的 C 和 C++ 头文件的包。相应的规范和文档可在 Khronos 网站上找到。...
A元包本身不提供任何文件。相反,依赖项提供文件。我们必须查找此元包的依赖项:
$ apt depends opencl-headers
opencl-headers
Depends: opencl-c-headers (= 2.2~2019.01.17-g49f07d3-1)
Depends: opencl-clhpp-headers (>= 2.0.10)
所以你必须看看那些所提供文件的包。
在您知道要查看哪些包之后,dpkg 有一个方便的功能可以列出任何已安装包提供的文件。
从man dpkg
:
-L, --listfiles package-name...
List files installed to your system from package-name.
例如,以下是该hello
包安装的文件:
$ dpkg -L hello
/.
/usr
/usr/bin
/usr/bin/hello
/usr/share
/usr/share/doc
/usr/share/doc/hello
/usr/share/doc/hello/NEWS.gz
/usr/share/doc/hello/changelog.Debian.gz
/usr/share/doc/hello/copyright
/usr/share/info
/usr/share/info/hello.info.gz
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/hello.1.gz
为了好玩,我们来反向推导并确定哪个包提供了特定的文件:
-S, --search filename-search-pattern...
Search for a filename from installed packages.
在此示例中,您可以看到该文件由包提供hello
:
$ dpkg -S /usr/share/doc/hello/NEWS.gz
hello: /usr/share/doc/hello/NEWS.gz