c++ - 为 Homebrew 软件构建 C++ 公式

标签 c++ ruby homebrew package-managers

我对 Ruby 的经验非常少,我正在尝试构建一个简单的 Homebrew 程序。我有一个具有以下结构的简单测试项目

.
├── Makefile
└── test.cpp

0 directories, 2 files

然后我有以下 .rb 公式文件

class Testbrew < Formula
  desc ""
  homepage ""
  url ""
  version ""
  head ""
  sha256 ""

  def install
    # system "make"
    # system("g++ -std=c++14 -O3 test.cpp -o testbrew")
    system "g++", "-std=c++14",
           "-O3",
           "-Wall",
           "-Werror",
           "-Wextra",
           "-pedantic",
           "-Wvla",
           "test.cpp",
           "-o testbrew"
    bin.install "testbrew"
    ohai("Done!")
  end
end

这里令人困惑的部分是 system 的前两行注释行可以安装包,但第三行没有,知道为什么吗?如果我尝试第三行,我会得到错误

==> g++ -std=c++14 -O3 -Wall -Werror -Wextra -pedantic -Wvla test.cpp -o testbrew
Error: No such file or directory - testbrew

此外,函数调用 system() 是否不允许用户执行某些操作?即是否施加了任何安全限制(例如 ptrace)?

最佳答案

您的论点 "-o testbrew" 是错误的。解析为 -o 并带有选项 "testbrew" 包括 空格。这是唯一可能的,因为具有多个参数的 system 绕过了正常的 shell 解析,您直接负责正确拆分参数。

您已经正确分解了其他论点。我建议这样做:

"-o", "testbrew"

关于c++ - 为 Homebrew 软件构建 C++ 公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41354198/

相关文章:

ruby - Ruby map 中的排除项

ruby-on-rails - 获取任何类型的 URL 格式的域名? -- PHP 到 Ruby

ruby-on-rails - rails ActiveSupport :Concern and Private Methods

Python 和 Homebrew Vim

c++ - 将Win32对话框中的图标设置为默认图标

c++ - 模板模板参数不是类型

c++ - 为傻瓜寻找一种编程语言

ruby - OS X Homebrew 需要为 cmake 创建构建目录

elasticsearch - 我如何使用 Homebrew 软件安装Elasticsearch 1.2.1

c++ - 位产生的功率集