#Visual Studio Code 編譯不了

1 messages · Page 1 of 1 (latest)

frigid lantern
#

好久不見了各位,請教一下這個問題,因為是照著教學弄得,所以現在完全沒頭緒要怎麼解決。

之前照著這篇教學建置了vscode的C++編譯環境( https://hackmd.io/@liaojason2/vscodecppwindows ),但中間大概一年多因為各種問題沒有用到vscode。

最近升大學要寫C語言程設作業時發現這個延伸模組用不了了,然後TA叫我裝了C/C++ Runner取代他,但用完之後編譯卻出現了錯誤,而且也沒有以前習慣會跳出來的黑色小視窗,然後TA也說他不清楚我也不太懂,請教各位 Orz

附圖依序是錯誤訊息、之前用但後來不支援的延伸模組、目前安裝的所有延伸模組

zealous dawn
#

建議去設定翻一下

#

我記得我之前出問題的時候就是去設定裡東翻翻西找找

#

然後就可以編譯執行了

#

印象中最後好像是到一個json檔,把編譯器路徑啊、參數啊什麼的填好就可以了

#

找到了

frigid lantern
zealous dawn
#

其實隨便亂動也沒差,git都有存好就好

#

反正可以復原

frigid lantern
novel basalt
#

建議可以在終端機輸入

$ gcc 檔名.c -o 檔名

然後再輸入

$ ./檔名
#

用VS code的模組跑c常常出現大大小小的問題

zealous dawn
#

環境變數沒設好吧

novel basalt
zealous dawn
#

不需要打$

#

那是提示字元

#

在win裡面是path>

novel basalt
#

像這樣

gcc 04.c -o 04
#

然後再輸入

./04
#

那個$只是提示那是命令而已

#

不用打進去

frigid lantern
#

噢噢有了 但為什麼

zealous dawn
#

gcc是編譯器
04.c是原始碼
-o是參數,意思是output
04是目標檔案

#

在win裡面記得編譯成04.exe

#

./指的是當前資料夾

#

目前所在的資料夾可以看>符號前面的路徑

frigid lantern
#

我試著把tasks.json裡的這個g改成gcc但還是不行耶

zealous dawn
#

-g可以直接刪掉

#

那是參數,gcc在前面的其他選項裡

#

你試試看

#

標紅色這幾個應該是可以直接刪掉的

frigid lantern
#

照著做ㄌ 但好像還是沒辦法

zealous dawn
#

看錯誤訊息似乎是你把.exe檔拿去編譯?

zealous dawn
zealous dawn
zealous dawn
#

編譯失敗的訊息應該在vscode的終端裡

frigid lantern
# zealous dawn 你可以吧tasks.json貼上來嗎?我好奇

好 麻煩你ㄌ

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            "command": "g++",
            "args": [
                "${file}",
                "-o",
                "${fileBasenameNoExtension}.exe"
            ],
            "group": "build"
        },
        {
            "type": "cppbuild",
            "label": "C/C++: gcc.exe 建置使用中檔案",
            "command": "C:/MinGW/bin/gcc.exe",
            "args": [
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe",
            ],
            "options": {
                "cwd": "C:/MinGW/bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "偵錯工具產生的工作。"
        }
    ]
}
frigid lantern
zealous dawn
#


我沒用過F9欸

zealous dawn
#

絕對路徑比較不會被環境變數影響

#

大概啦,我也不確定
我也是新手

#

我要補習
先下了

frigid lantern
zealous dawn
#

直接f5是debug模式

#

好像有點不一樣

#

我沒用過

frigid lantern
#

你先忙

#

加油

quick jackal
#

直接裝 code runner

zealous dawn
zealous dawn
#

我記得我有開阿?

#

算了,反正我目前覺得tasks.json蠻好用的

bright imp
#

settings.json 檔案設定 { "code-runner.ignoreSelection": true, "code-runner.executorMap": { "cpp": "cd $dir; if ($?) { g++ -std=c++14 -Wall -Wextra -O2 '$fileName' -o '$fileNameWithoutExt' }; if ($?) { .\\'$fileNameWithoutExt' }" }, "code-runner.preserveFocus": false, "code-runner.clearPreviousOutput": true, "code-runner.runInTerminal": true, "code-runner.saveFileBeforeRun": true, "terminal.integrated.defaultProfile.windows": "PowerShell" }

frigid lantern
frigid lantern
quick jackal
#

執行不了是指啥

frigid lantern
#

應該說 我其實根本不知道他是在幹嘛的

#

但教學叫我裝 我就裝了

#

然後現在不知道為什麼code執行不了

quick jackal
#

不是,執行不了有很多種

bright imp
#

我以為是C++

#

不過js 沒偵測到應該也會用預設的方法🤔

frigid lantern
#

我的意思是我裝code runner是寫js的時候裝的

bright imp
#

okok

#

資料夾長這樣

frigid lantern
frigid lantern
bright imp
#

多的就其他設定檔而已

#

不影響

quick jackal
#

阿 code runner 不能執行是長怎樣

bright imp
#

你先一般執行看看吧

#

可以再用Debugger

#

還是叫Debugging

quick jackal
#

寫作業完全用不到這些吧 happythonk

#

code runner 裝一裝就完事了

#

不能用大概是

  1. 沒設定 run in terminal
  2. 沒選到用 code runner 執行
frigid lantern
#

我按 Ctrl+Alt+N

#

但印出來的文字是亂碼

bright imp
#

UTF-8

#

要打英文

frigid lantern
#

這不能在設定檔改嗎?

#

我作業有些output有規定中文