我正在使用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。版本: 2018-12 (4.10.0)。
具体来说,如何让fmt库与我安装的brew一起安装的gcc一起工作?
我在我的Mac /usr/local/c业力中拥有的是:
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/c业力中拥有的是:
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谢谢你的帮助
发布于 2019-02-23 10:05:54
自制的工作方式是把所有的东西都放进去。
/usr/local/Cellar/PACKAGE-NAME/PACKAGE-VERSION然后,它为/usr/local/bin中的二进制文件创建指向这些东西的链接。
/usr/local/bin/grep -> /usr/local/Cellar/grep/4.17/bin/grep因此,您只需将/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命令简化为:
g++-8 $(pkg-config --libs --cflags fmt) <PROGRAM.CPP> -o <PROGRAM>https://stackoverflow.com/questions/54839414
复制相似问题