我是cmake的新手,我只是用它在我的ubuntu linux上安装opencv.这是我跑的命令:
"cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/jinha/OCV/source"
Run Code Online (Sandbox Code Playgroud)
然后它返回错误:
"FATAL: In-source builds are not allowed.
You should create separate directory for build files."
Run Code Online (Sandbox Code Playgroud)
我当前的目录/ home/jinha/OCV/build/opencv确实包含CMakefiles.txt文件,所以这不是问题所在.我试图在命令中更改目录,但它们都引发了同样的错误.我在这个问题上看到了其他答案,所以每次运行命令之前我都会删除CMakeFiles文件夹和CMakeCache.txt文件,但是没有一个能够工作.谢谢.
我正在尝试使用 cmake 构建一个程序。由于多种原因,必须使用静态库而不是动态库构建程序,并且我需要使用 PyTorch,所以这就是我所做的:
libtorch.a
下载并安装了 PyTorch 静态库(我在正确的路径中找到了/home/me/pytorch/torch/lib
)CMakeLists.txt
由以下内容制成:cmake_minimum_required(VERSION 3.5.1 FATAL_ERROR)
project(example-app LANGUAGES CXX)
find_package(Torch REQUIRED)
add_executable(example-app example-app.cpp argparse/argparse.cpp)
target_link_libraries(example-app "${TORCH_LIBRARIES}" -static -fopenmp)
set_property(TARGET example-app PROPERTY CXX_STANDARD 14)
Run Code Online (Sandbox Code Playgroud)
仅供参考,example-app.cpp
是具有主函数的文件,并且argparse/
是一个目录,其中包含调用函数的一些源代码example-app.cpp
它一直工作到cmake -DCMAKE_PREFIX_PATH=/home/me/pytorch/torch ..
,但是下面build
会出现一些错误,说它找不到对某些函数的引用,即以 开头的函数fbgemm::
。fbgemm
是(据我所知)用于实现 PyTorch 的某种 GEMM 库。
在我看来,在链接静态 PyTorch 库时,其内部库(如fbgemm
内容)尚未正确链接,但我不是这方面的专家cmake
,老实说也不完全确定。
我做错了什么吗,或者这个问题有解决方法吗?任何帮助或推动正确的方向将不胜感激。
聚苯乙烯
确切的错误尚未发布,因为它太长了,但它主要由undefined reference to ~
错误组成。如果查看错误消息可能对某些人有帮助,我很乐意编辑问题并发布它。
build
如果我从代码中删除需要库函数的部分而不从.#include <torch/torch.h>
example-app.cpp
我有一个问题在哪里
import torch
print(torch.cuda_is_available())
Run Code Online (Sandbox Code Playgroud)
将打印 False,并且我无法使用可用的 GPU。我已经在环境中进行了尝试conda
,我安装了与我拥有的 NVIDIA 驱动程序相对应的 PyTorch 版本。我也在 docker 容器中尝试过,我也做了同样的事情。我已在远程服务器上尝试过这两个选项,但都失败了。我知道我已经安装了正确的驱动程序版本,因为我在安装 PyTorch 之前检查了版本nvcc --version
,并且检查了nvidia-smi
可以正确显示机器上 GPU 的 GPU 连接。
另外,我检查了这篇文章并尝试导出CUDA_VISIBLE_DEVICES
,但没有运气。
在服务器上,我有 NVIDIA V100 GPU,CUDA 版本为 10.0(适用于 conda 环境),在我构建的 docker 容器上有版本 10.2。任何帮助或推动正确的方向将不胜感激。谢谢!
我想看看Linux内核功能是如何实现的,所以我从GNU页面mmap()
下载了GNU C Library( )源码。(我下载是因为告诉我我正在使用)
现在找到我所做的定义,它什么也没返回,所以我尝试返回以下内容:glibc
glibc-2.27
ldd --version
GLIBC 2.27
mmap()
grep -r "mmap(void" *
grep -r "mmap (void" *
conform/data/sys/mman.h-data:function {void*} mmap (void*, size_t, int, int, int, off_t)
include/sys/mman.h:extern void *__mmap (void *__addr, size_t __len, int __prot,
malloc/memusage.c:mmap (void *start, size_t len, int prot, int flags, int fd, off_t offset)
manual/llio.texi:@deftypefun {void *} mmap (void *@var{address}, size_t @var{length}, int @var{protect}, int @var{flags}, int @var{filedes}, off_t @var{offset})
misc/sys/mman.h:extern void *mmap (void *__addr, size_t __len, int __prot, …
Run Code Online (Sandbox Code Playgroud) cmake ×2
linux ×2
pytorch ×2
gpu ×1
libtorch ×1
linux-kernel ×1
mmap ×1
nvidia ×1
opencv ×1
system-calls ×1