Macos 在mac上,如何向环境变量添加路径?

Macos 在mac上,如何向环境变量添加路径?,macos,gcc,Macos,Gcc,我在mac上使用opencv,每次编译程序时,我都必须键入: g++ -I /usr/local/include -L /usr/local/lib main.cpp 如何避免键入-I和-L参数?创建生成文件: CXXFLAGS=-I /usr/local/include -O3 -DSOMETHING LDFLAGS=-L /usr/local/lib LIBS=-lwhatever main: main.o $(LD) -o $@ $* $(LDFLAGS) $(LIBS) m

我在mac上使用opencv,每次编译程序时,我都必须键入:

g++ -I /usr/local/include -L /usr/local/lib main.cpp
如何避免键入-I和-L参数?

创建生成文件:

CXXFLAGS=-I /usr/local/include -O3 -DSOMETHING
LDFLAGS=-L /usr/local/lib
LIBS=-lwhatever

main: main.o
    $(LD) -o $@ $* $(LDFLAGS) $(LIBS)

main.o: main.cpp
然后在命令提示下键入
make

$ make
创建生成文件:

CXXFLAGS=-I /usr/local/include -O3 -DSOMETHING
LDFLAGS=-L /usr/local/lib
LIBS=-lwhatever

main: main.o
    $(LD) -o $@ $* $(LDFLAGS) $(LIBS)

main.o: main.cpp
然后在命令提示下键入
make

$ make

trojanfoe几乎是正确的,但makefile不使用常规名称。如果是这样的话,那就更简单了:

CXXFLAGS=-I /usr/local/include -O3 -DSOMETHING
LDFLAGS=-L /usr/local/lib
LDLIBS=-lwhatever

使用该Maxfile,可以只键入<代码>,使主< /代码>,并使用它的隐式规则编译C++文件

TROJANFOE几乎是正确的,但是MaFo文件不使用常规名称。如果是这样的话,那就更简单了:

CXXFLAGS=-I /usr/local/include -O3 -DSOMETHING
LDFLAGS=-L /usr/local/lib
LDLIBS=-lwhatever

使用Maxfile,你可以只键入<代码>使主< /代码>使用它的隐式规则来编译C++文件

你不需要任何这些- GCC默认地自动搜索这些路径-只要键入<代码> G++Me.CPP…< /Cord>你不需要任何一个- GCC默认地自动搜索这些路径-只是类型<代码> G++Me.CPP…<代码> CCFLAGS < /C> > C++代码>代码> > CXFLASG< <代码>, LIBS应为代码> LDLIBS。如果这样做,那么您甚至不需要
main.o
main
的规则,隐式规则将是fine@JonathanWakely谢谢实际上应该是<代码> CXXFLAGG/<代码>。是的,我没有注意到它是C++文件。N.B.LIBS仍然是错误的,您仍然不需要targets@JonathanWakely“错”这个词有点强,不是吗?那种类型的Makefile对我来说一直都很好…@JonathanWakely那就是我!:D代码> CCFLAGS < /代码>应该是C++文件的代码> CXFLASK< <代码>,而 LIBS应该是代码> LDLIBS。如果这样做,那么您甚至不需要
main.o
main
的规则,隐式规则将是fine@JonathanWakely谢谢实际上应该是<代码> CXXFLAGG/<代码>。是的,我没有注意到它是C++文件。N.B.LIBS仍然是错误的,您仍然不需要targets@JonathanWakely“错”这个词有点强,不是吗?那种类型的Makefile对我来说一直都很好…@JonathanWakely那就是我!:D