在 Visual Studio 代码上使用 Docker 为 macOS 编译 C++
Compile C++ with Docker on Visual Studio Code for macOS
我在 BeagleBone Black (Ubuntu 14.04 (Trusty Tahr), ARM v7) 上启动了一个 C++ 应用程序的新项目,但将来我会将应用程序移植到 Linux 或 Windows.
我想搭建一个可以跨平台的开发环境(尤其是macOS)
目前,我使用:
- Visual Studio代码:我喜欢这个编辑器,而且它是跨平台的。
- CMake:我是新手,但我想学习。
- Docker 有以下内容:我也是 Docker 的新手
- arm-linux-gnueabihf-g++-4.8 作为编译器
- 库:像 Poco
目标是使用我的 Docker 图像构建我的应用程序,将二进制文件传输到我的 BeagleBone Black 并从我的 macOS Visual Studio 代码实例在目标上进行调试。
此外,我尝试在我的 Docker 图像上安装 Visual Studio 代码,但它有点迟钝,而且我的键盘无法正常工作。
我愿意更改我的开发设置,但我不知道最佳做法。
最后我使用 "workaround" 和 Visual Studio 代码任务
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "0.1.0",
"showOutput": "always",
"runner": "terminal",
"command": "bash",
"args": [
"-c"
],
"isShellCommand": true,
"tasks": [
{
"taskName": "docker-cmake-configure",
"suppressTaskName": true,
"args": [
"docker exec -it ${config:custom.docker.defaultName} cmake --no-warn-unused-cli -DCMAKE_C_COMPILER:FILEPATH=/usr/bin/arm-linux-gnueabihf-gcc-4.8 -DCMAKE_CXX_COMPILER:FILEPATH=/usr/bin/arm-linux-gnueabihf-g++-4.8 -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_BUILD_TYPE:STRING=Debug -H/home/developer/project -B/home/developer/project/build"
]
},
{
"taskName": "docker-cmake-build",
"suppressTaskName": true,
"isBuildCommand": true,
"args": [
"docker exec -it ${config:custom.docker.defaultName} cmake --build /home/developer/project/build --config Debug -- -j 6"
]
}
]
}
也许当这个问题解决后,我可以使用更完整的解决方案:https://github.com/vector-of-bool/vscode-cmake-tools/issues/111
我在 BeagleBone Black (Ubuntu 14.04 (Trusty Tahr), ARM v7) 上启动了一个 C++ 应用程序的新项目,但将来我会将应用程序移植到 Linux 或 Windows.
我想搭建一个可以跨平台的开发环境(尤其是macOS)
目前,我使用:
- Visual Studio代码:我喜欢这个编辑器,而且它是跨平台的。
- CMake:我是新手,但我想学习。
- Docker 有以下内容:我也是 Docker 的新手
- arm-linux-gnueabihf-g++-4.8 作为编译器
- 库:像 Poco
目标是使用我的 Docker 图像构建我的应用程序,将二进制文件传输到我的 BeagleBone Black 并从我的 macOS Visual Studio 代码实例在目标上进行调试。
此外,我尝试在我的 Docker 图像上安装 Visual Studio 代码,但它有点迟钝,而且我的键盘无法正常工作。
我愿意更改我的开发设置,但我不知道最佳做法。
最后我使用 "workaround" 和 Visual Studio 代码任务
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "0.1.0",
"showOutput": "always",
"runner": "terminal",
"command": "bash",
"args": [
"-c"
],
"isShellCommand": true,
"tasks": [
{
"taskName": "docker-cmake-configure",
"suppressTaskName": true,
"args": [
"docker exec -it ${config:custom.docker.defaultName} cmake --no-warn-unused-cli -DCMAKE_C_COMPILER:FILEPATH=/usr/bin/arm-linux-gnueabihf-gcc-4.8 -DCMAKE_CXX_COMPILER:FILEPATH=/usr/bin/arm-linux-gnueabihf-g++-4.8 -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_BUILD_TYPE:STRING=Debug -H/home/developer/project -B/home/developer/project/build"
]
},
{
"taskName": "docker-cmake-build",
"suppressTaskName": true,
"isBuildCommand": true,
"args": [
"docker exec -it ${config:custom.docker.defaultName} cmake --build /home/developer/project/build --config Debug -- -j 6"
]
}
]
}
也许当这个问题解决后,我可以使用更完整的解决方案:https://github.com/vector-of-bool/vscode-cmake-tools/issues/111