【问题标题】:"In-source builds are not allowed" in cmakecmake中的“不允许进行源内构建”
【发布时间】:2018-01-13 01:43:45
【问题描述】:

我是 cmake 新手,我只是用它在我的 ubuntu linux 上安装 opencv。 这是我运行的命令:

"cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/jinha/OCV/source"

然后它返回错误:

"FATAL: In-source builds are not allowed.
You should create separate directory for build files."

我的当前目录 /home/jinha/OCV/build/opencv 确实包含 CMakefiles.txt 文件,所以这不是问题。我试图在我的命令中更改目录,但它们都引发了相同的错误。我看到了关于这个问题的其他答案,所以我每次运行命令之前都删除了 CMakeFiles 文件夹和 CMakeCache.txt 文件,但它们都不起作用。谢谢。

【问题讨论】:

    标签: linux opencv cmake


    【解决方案1】:

    它希望你创建一个单独的构建目录(任何地方),并在那里运行 cmake。例如:

    mkdir my_build_dir
    cd my_build_dir
    rm ../CMakeCache.txt
    cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/jinha/OCV/source
    

    注意这个例子中的..告诉cmake去哪里寻找源代码。

    如果您在重新构建之前没有删除CMakeCache.txt,它仍然会显示此错误。 所以,请记住在运行cmake之前先删除CMakeCache.txt

    【讨论】:

    • 哇,非常感谢!这是我的第一个问题。非常感谢!完全有效。
    • CMAKE 只是很聪明,通过要求您在另一个目录中构建以防止对象和其他构建文件弄脏您的源,从而将您的源保存为“pristine”...
    • @정진하:不客气。如果这解决了您的问题,您可以通过单击左侧的复选标记“接受”答案。
    • 感谢您删除CMakeCache.txt
    • 源目录“/Users/user/build”似乎不包含 CMakeLists.txt。
    【解决方案2】:

    sources 成功下载并解压缩 OpenCV 源代码后,您需要创建简单的命令文件 install.sh。例如,您的工作目录将是 /home/user/myopencv

    所以 /home/user/myopencv/install.sh 将包含下一个代码:

    #!/bin/bash
    
    rm CMakeCache.txt
    mkdir build
    cd build
    cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local 
    make
    make install
    make clean
    

    下一个

    chmod 777 install.sh
    ./install.sh
    

    毕竟你会得到那些可执行文件:

    root@cartman:/usr/local/bin# ls -las | grep opencv
     32 -rwxr-xr-x  1 root root   29888 апр 20 18:10 opencv_annotation
    244 -rwxr-xr-x  1 root root  247608 апр 20 18:10 opencv_createsamples
    244 -rwxr-xr-x  1 root root  247504 апр 20 18:10 opencv_haartraining
     20 -rwxr-xr-x  1 root root   18600 апр 20 18:10 opencv_performance
    288 -rwxr-xr-x  1 root root  294592 апр 20 18:10 opencv_traincascade
     16 -rwxr-xr-x  1 root root   14288 апр 20 18:10 opencv_version
     60 -rwxr-xr-x  1 root root   61040 апр 20 18:10 opencv_visualisation
    

    享受吧!

    【讨论】:

    • 这对我有用,直到“下一个”部分。我没有看到任何 install.sh
    • 您必须自己创建。
    • 创建install.sh 不是强制性的,但如果您想避免输入多个命令,它会很有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-18
    • 2017-03-12
    相关资源
    最近更新 更多