簡體   English   中英

如何解決“無法打開‘raise.c’”錯誤?(VSCODE,LINUX)

[英]How can I solve "Unable to open 'raise.c' " Error?(VSCODE , LINUX)

(操作系統和版本:Ubuntu 18.4,VS 代碼版本:Vscode 1.4,C/C++ 擴展版本:0.26)

你好,我已經閱讀了所有關於“raise.c”的文章,但沒有一篇能解決我的問題,我只是寫了一個簡單的 OpenCV 代碼來捕獲網絡攝像頭的幀。 每次我運行我的代碼時,它經常顯示錯誤。 錯誤信息是:

無法打開“raise.c”:無法讀取文件(錯誤:找不到文件(/build/glibc-OTsEL5/glibc-2.27/sysdeps/unix/sysv/linux/raise.c))。

launch.json 是:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++ build and debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "g++ build active file",
            "miDebuggerPath": "/usr/bin/gdb"
        }
    ]
}

tasks.json 是:

{
    "tasks": [
        {
            "type": "shell",
            "label": "g++ build active file",
            "command": "/usr/bin/g++",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}",
                "`pkg-config",
                 "--libs",
                  "--cflags", 
                  "opencv4`"

            ],
            "options": {
                "cwd": "/usr/bin"
            }
        }
    ],
    "version": "2.0.0"
}

那么我該如何解決這個問題呢? 有什么辦法可以解決。 我是初學者程序員。

第二個問題是每次我運行這段代碼時,我的網絡攝像頭都會凍結,我必須使用“force quite”底部。 為什么我的網絡攝像頭凍結? 歡迎任何想法。 謝謝。 (我使用的是 ubuntu,我的 IDE 是 Vscode)

經過3天的工作,我終於找到了解決方案。 我正在為下一代編寫解決方案。 沒有必要在互聯網上搜索你找不到任何東西:D

好吧,如果你想解決這個問題,你需要再次重新安裝 OpenCV 並關閉所有標志。 這是一個錯誤。 我使用的標志是:

cmake -D BUILD_TIFF=ON -D WITH_CUDA=OFF -D ENABLE_AVX=OFF -D
WITH_OPENGL=ON -D WITH_OPENCL=OFF -D WITH_IPP=OFF -D WITH_TBB=ON -D
BUILD_TBB=ON -D WITH_EIGEN=OFF -D WITH_V4L=OFF -D WITH_VTK=OFF -D 
BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D CMAKE_BUILD_TYPE=RELEASE -D
CMAKE_INSTALL_PREFIX=/usr/local -D
OPENCV_EXTRA_MODULES_PATH=./../opencv_contrib/modules ..

用正確的路徑填充OPENCV_EXTRA_MODULES_PATHCMAKE_INSTALL_PREFIX=/usr/local

就這樣,祝你好運。

使用 gdb 調試器時可能會發生此錯誤。 在這種情況下,您需要在編譯命令中包含“-g”標志。 (這解決了把我帶到這里的錯誤)

您的編譯命令可能類似於以下內容:

g++ -Wall -Werror -std=c++14 -g -O -o <executable> <fileName>

還要注意在 launch.json 中適合我的程序路徑:

"program": "${workspaceFolder}/<executable>"

如果您只是不想每次都看到有關丟失文件的提示,您可以創建該目錄並在其中放置一個空文件(路徑已根據我目前在此處看到的內容進行了調整):

sudo mkdir -p  /build/glibc-eX1tMB/glibc-2.31/sysdeps/unix/sysv/linux/
sudo touch /build/glibc-eX1tMB/glibc-2.31/sysdeps/unix/sysv/linux/raise.c

如果你想在調試時看到一些源代碼,你可以把你正在使用的 glibc 版本的文件放在那里。 在在線存儲庫中找到與錯誤路徑中的版本對應的標簽,並從那里獲取它。 你的版本是glibc-2.27而我的是glibc-2.31 我的在這里: https ://github.com/bminor/glibc/blob/glibc-2.31/sysdeps/unix/sysv/linux/raise.c 所以我可以按如下方式抓取它:

pushd ~/temp
wget https://raw.githubusercontent.com/bminor/glibc/glibc-2.31/sysdeps/unix/sysv/linux/raise.c
sudo cp -a raise.c /build/glibc-eX1tMB/glibc-2.31/sysdeps/unix/sysv/linux/

可能有一種方法可以告訴 VSCode / gdb 從其他路徑找到它,而不會弄亂您的根文件系統。 請任何人編輯,如果他們知道該怎么做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM