У меня есть код Голанга, например:
import (
"github.com/bobertlo/go-mpg123/mpg123"
)
func main() {
...
}
Из терминала, чтобы построить этот код. Я должен установить ниже переменную env:
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/opt/homebrew/Cellar/mpg123/1.32.3/include
export LIBRARY_PATH=$LIBRARY_PATH:/opt/homebrew/Cellar/mpg123/1.32.3/lib
Теперь я хочу построить с использованием vscode. Я настраиваю launch.json, Tasks.json ниже:
// launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch Package",
"type": "go",
"request": "launch",
"mode": "auto",
"preLaunchTask": "Set CGO_CFLAGS",
"program": "${fileDirname}"
}
]
}
// tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "Set C_INCLUDE_PATH",
"type": "shell",
"command": "export C_INCLUDE_PATH=$C_INCLUDE_PATH:/opt/homebrew/Cellar/mpg123/1.32.3/include",
"problemMatcher": []
},
{
"label": "Set LIBRARY_PATH",
"type": "shell",
"command": "export LIBRARY_PATH=$LIBRARY_PATH:/opt/homebrew/Cellar/mpg123/1.32.3/lib",
},
{
"label": "Set CGO_CFLAGS",
"type": "shell",
"dependsOn":["Set C_INCLUDE_PATH", "Set LIBRARY_PATH"],
"dependsOrder": "sequence",
},
]
}
Но это не сработало. Сообщается:
Build Error: go build -o /Users/xxx/Projects/portauio-go/examples/__debug_bin2329559837 -gcflags all=-N -l .
# github.com/bobertlo/go-mpg123/mpg123
../../../../go/pkg/mod/github.com/bobertlo/[email protected]/mpg123/mpg123.go:8:10: fatal error: 'mpg123.h' file not found
#include <mpg123.h>
^~~~~~~~~~
1 error generated. (exit status 1)
Как я могу заставить это работать?
Могут ли ${env:ENV_VAR}
ссылки на переменные быть тем, что вы ищете? Это зависит от рабочего пространства.
Однако есть специальные настройки для расширения go.
Я полагаю, это потому, что тип задачи был установлен на «оболочка». Это означает, что он будет выполняться в другой оболочке, и установленный им env
не вступит в силу в текущей оболочке.
В launch.json
я добавил env
вот так, и теперь это работает:
{
"name": "Launch mp3.go",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "examples/mp3.go",
"args": ["sample-12s.mp3"],
"env": {
"CPATH": "${CPATH}:/opt/homebrew/Cellar/mpg123/1.32.3/include",
"LIBRARY_PATH": "${LIBRARY_PATH}:/opt/homebrew/Cellar/mpg123/1.32.3/lib"
}
},
См. «Установленные библиотеки Homebrew».