正如标题所示,我想知道如何在 Ubuntu 系统上将 -pthread 添加到 Sublime Text 3 的 c/c++ 编译器选项中(gcc --std=gnu99 -pthread -Wall)。我在网上搜索了答案,但找不到任何相关的解决方案。
我对此还是个新手,我会感激你的。谢谢。
更新:感谢您的回复。我已经实现了 @MattDMO 建议的解决方案,看起来编译器在很大程度上已经停止尖叫,但是,它仍然无法处理返回的以下错误消息:
gcc: fatal error: no input files
compilation terminated.
[Finished in 0.0s with exit code 4]
[cmd: ['gcc', '--std=gnu99', '-pthread', '-Wall', '/myworkingdirectory/myfile.c', '-o', 'myfile']]
[dir: /myworkingdirectory]
[path: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games]"
我不知道为什么它提示没有输入文件。有什么想法吗?
最佳答案
要添加编译器选项,您需要修改 Sublime 的标准 C/C++ build system ,或创建一个新的。最简单的方法是创建一个新文件,但我还将向您展示如何编辑现有文件。
要创建新的构建系统,请使用 JSON 语法在 Sublime 中打开一个新文件并添加以下内容:
{
"cmd": ["gcc", "--std=gnu99", "-pthread", "-Wall", "${file}", "-o", "${file_base_name}"],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.c, source.c++",
"shell": true,
"variants":
[
{
"name": "Run",
"cmd": ["${file_path}/${file_base_name}"],
"shell": true
}
]
}
另存为 ~/.config/sublime-text-3/Packages/User/C_pthread.sublime-build
。要使用它进行编译,请打开源文件,然后选择 Tools -> Build System -> C_pthread
,然后按 CtrlB 进行构建。 CtrlShiftB 将执行 Run
选项。
编辑 Sublime 的内置 C/C++ 构建系统稍微复杂一些。在 Sublime Text 3 中,包被包裹在 .sublime-package
中。 zip 文件。要访问 C/C++ 构建文件,请首先安装 Package Control (如果尚未安装),然后安装 PackageResourceViewer
插入。使用 CtrlShiftP 打开命令面板,输入 prv
调出<b><i>P</i></b>ackage<b><i>R</i></b>esource<b><i>V</i></b>iewer
选项,选择Open Resource
,然后向下导航至 C++
并选择C++.sublime-build
选项。将其内容替换为上述内容,然后保存文件。这种方法的优点是可以选择 Tools -> Build System -> Automatic
,每当您编辑 C 文件时,您都可以按 CtrlB 进行构建,而不必担心是否选择了正确的构建系统。
最后一点建议:编辑构建系统对于小型一次性程序来说很好,但对于较大的项目,我强烈建议使用 make
。您可以在 Makefile
中设置所有选项,在 Sublime 中打开它,点击 CtrlB (假设您的构建系统设置为 Automatic
),您的程序将构建。这样您就不需要在 .sublime-build
中设置所有命令行选项、库包含等。文件,然后为您的下一个项目再次更改它们。
祝你好运!
关于c++ - 在 Sublime Text 3 编译器选项中启用 -pthread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24429415/