如何在 Visual Studio Code 中包含编译器标志?
问题描述
我有一个程序,我试图在使用 fftw 函数的 Visual Studio Code 调试器中运行该程序.它用命令编译
I have a program that I am trying to run in the Visual Studio Code debugger that uses fftw functions. It compiles with the command
在我电脑上的终端上,没有抱怨未定义的引用.但是,在生成 launch.json 文件后,我的程序会抱怨 fftw 库函数和 -std=c++14
编译器标志.
on the terminal on my computer without complaining about undefined references. However, after generating a launch.json file, my program complains about fftw library functions and about the -std=c++14
compiler flag.
我相信它只需要 -std=c++11
和 -lfftw3
的额外标志使 Visual Studio Code 中的调试器正常工作.我正在使用 Microsoft 的 C/C++ 扩展和 Code Runner 扩展.
I believe that it needs just the extra flags of -std=c++11
and -lfftw3
for the debugger in Visual Studio Code to work. I am using Microsoft's C/C++ extension and the Code Runner extension.
我正在尝试将 Mathematica 代码文档转换为 C++.
I am trying to transform a Mathematica document of code into c++.
以下是我从输出中得到的错误.
Below are the errors I get from the output.
如果我提出这个问题的方式有任何问题,请告诉我.
Please let me know about any problems with the way I have asked this question.
推荐答案
简单的选择是 在 tasks.json 配置中将它们作为 args
传递:
The easy option is to pass them as args
in your tasks.json configuration:
更易于维护和共享的选项是创建一个 Makefile 并将它们全部设置在那里:
The more maintainable, shareable option is to create a Makefile and set them all there:
然后在您的任务配置中,只需调用make
:
Then in your task configuration, just call make
:
如果你有依赖于 env 的路径,你可以在你的 Makefile 中指定一个变量(例如 MY_LIBS
),然后在任务配置的 env
块中设置它们(例如,MY_LIBS":/path/to/libs"
).
If you have env-dependent paths, you can specify a variable in your Makefile (ex. MY_LIBS
) and then set them in the env
block of the task configuration (ex. "MY_LIBS": "/path/to/libs"
).
Makefile 选项的优点在于:
The advantage of the Makefile option is that:
- 不使用 VS Code 的人仍然可以编译您的代码(从控制台或其他 IDE).
- 如果您使用的是 CI/CD 管道,则不需要单独的配置.您可以使用相同的 Makefile 使用 VS Code 在本地进行构建,也可以使用 CI/CD 进行构建.
- 您可以将 Makefile 提交到存储库,然后只需在本地 tasks.json 配置中使用环境变量来指定特定于环境的设置.
这篇关于如何在 Visual Studio Code 中包含编译器标志?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!