我正在尝试使用CMake工具和Visual Studio Code中的C/c++扩展在VS Code中构建一个大型c++框架。我正在浏览stackoverflow/github问题/任何谷歌建议,看起来我不是第一个遇到这种情况的人,但我无法弄清楚我的生活我做错了什么。
问题在这里。我想设置VS Code在某种程度上能够构建框架(它是c++)从VS Code使用内置的工具/扩展。以下是我到目前为止使用的过程(在Linux的标准终端中),它也可以在VS Code的终端中运行:
cd /path-to-project-main-folder
source scripts/env.sh
cmake .
make -j 10
现在的问题是,当我设置VS Code,打开框架所在的文件夹,VS Code识别它是cmake项目,并给我机会来构建它。问题是,当我试图构建它时,它没有首先设置环境,因此使用错误的cmake(不是源的,而是默认的服务器内置),也是错误的库,其中一些甚至没有被识别。问题在第一行:
source scripts/env.sh
,其中设置了环境变量,也为一些库和程序设置了PATH
。在cmake和build之前,VS Code不会运行这一行。有没有人知道如何配置CMake工具扩展运行的解决方案:
source scripts/env.sh
行,然后运行cmake和make?
我正在寻找一些使用任务的解决方案。json,设置。Json文件或创建我自己的工具包。但是没有解决方案对我有效,或者我没有完全理解解决方案:
https://github.com/microsoft/vscode-cmake-tools/blob/HEAD/docs/tasks.md- https://github.com/microsoft/vscode-cmake-tools/issues/2243
- https://github.com/microsoft/vscode-cmake-tools/pull/995
VSCode:通过脚本设置环境变量和CMake Tools, VS Code,…的手册页
VScode远程开发:在运行真正的构建任务之前,我如何运行构建任务来源环境变量?——比;但我使用cmake
VSCode,如何源环境变量文件,如setup.bash?
这取决于您的环境设置脚本的逻辑有多复杂。如果没有控制流,它只是设置一些环境变量,这很容易按照习惯处理:
在这样一个简单的情况下,我建议尝试使用CMake预设。configure预置可以有一个environment
属性,用于定义环境变量。对于库路径,这取决于您如何准确地使用这些库路径。如果是find_package
呼叫,我认为您可能可以使用cacheVariables
配置预设属性并设置CMAKE_PREFIX_PATH
。或者您可以直接使用CMAKE_CXX_FLAGS
设置链接标志。
另一个你可以看看的机制是CMake工具的设置-其中cmake.environment
,cmake.configureEnvironment
,cmake.buildEnvironment
和cmake.testEnvironment
可能感兴趣。
如果这些不适合你或者不适合你的用例,那么我认为你只需要尝试从一个环境中启动VS Code,这个环境已经采购了环境设置脚本,这样它就可以继承这些环境变量。