我使用的是MACOS Mojave 10.14.3版,需要使用GNU编译器而不是clang。
我使用brew install gcc
安装了gcc编译器。
然后,我使用brew install fmt
安装了fmt库。
我将#include <fmt/format.h>
放在了C ++脚本的顶部
然后我输入:
/usr/local/bin/g++-8 -O0 -g3 -Wall -c -fmessage-length=0 -std=c++17 -MMD -MP -MF"src/trail2.d" -MT"src/trail2.o" -o "src/trail2.o" "../src/trail2.cpp"
但是我收到此错误:
fatal error: fmt/format.h: No such file or directory
当我尝试使用Boost库时也会发生同样的事情。
当我使用clang时,发现fmt和boost没有问题。
以防万一,我正在为C / C ++开发人员使用Eclipse IDE。版本:2018-12(4.10.0)。
具体地说,如何使fmt库与在brew上安装的gcc一起使用?
我在Mac的/ usr / local / Cellar中拥有的是:
drwxr-xr-x 3 aaa staff 96 Feb 22 22:07 gcc
drwxr-xr-x 3 aaa staff 96 Feb 23 01:58 fmt
我在Mac的/ usr / local / Cellar中拥有的是:
lrwxr-xr-x 1 aaa admin 29 Feb 22 22:07 c++-8 -> ../Cellar/gcc/8.2.0/bin/c++-8
lrwxr-xr-x 1 aaa admin 29 Feb 22 22:07 cpp-8 -> ../Cellar/gcc/8.2.0/bin/cpp-8
lrwxr-xr-x 1 aaa admin 29 Feb 22 22:07 g++-8 -> ../Cellar/gcc/8.2.0/bin/g++-8
lrwxr-xr-x 1 aaa admin 29 Feb 22 22:07 gcc-8 -> ../Cellar/gcc/8.2.0/bin/gcc-8
感谢高级帮助
答案 0 :(得分:3)
自制的工作方式是将所有内容放入
let sol1 = bisect({ x in pow(x, 3) - 2 * pow(x, 2) - 5 }, xleft: 2.0, xright: 4.0)
print(sol1) // 2.690647602081299
let sol2 = bisect({ x in cos(x/2)}, xleft: 3.0, xright: 4.0, eps: 1.0e-15)
print(sol2) // 3.1415926535897936
,然后为/usr/local/Cellar/PACKAGE-NAME/PACKAGE-VERSION
中的二进制文件创建到这些东西的链接,例如
/usr/local/bin
,这样您只需要将/usr/local/bin/grep -> /usr/local/Cellar/grep/4.17/bin/grep
放入PATH中,所有 homebrew 程序都可以按名称运行,例如上例中的/usr/local/bin
。
它执行相同的编译操作,将实际的标头和库放入:
grep
,还创建指向其中的链接
/usr/local/Cellar/PACKAGE-NAME/PACKAGE-VERSION/include
/usr/local/Cellar/PACKAGE-NAME/PACKAGE-VERSION/lib
因此,您的/usr/local/include
/usr/local/lib
命令将是:
gcc
您可以查看哪些文件属于您的g++-8 -I /usr/local/include -L /usr/local/lib -lfmt <PROGRAM.CPP> -o <PROGRAM>
软件包以及它们的位置:
fmt
如果您安装brew ls fmt --verbose
,请使用:
pkg-config
它将使用文件brew install pkg-config
,并且如果您键入以下内容,则可以告诉您正确的编译开关:
fmt.pc
示例输出
pkg-config --libs --cflags fmt
这意味着您可以将-I/usr/local/Cellar/fmt/5.3.0/include -L/usr/local/Cellar/fmt/5.3.0/lib -lfmt
命令简化为:
gcc