GCC中 -I-L-l 选项的作用

Posted windsun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GCC中 -I-L-l 选项的作用相关的知识,希望对你有一定的参考价值。

在makefile中经常会看到这些选项,gcc默认会在程序当前目录、path路径中查找所需要的材料
如何给gcc添加我们自己的原材料(头文件,库等)

  • -I (注意是大写的i) 给gcc添加自定义的头文件的路径
    例如:我的头文件目录是myinclude
-Imyinclude
  • -L 给gcc添加额外的搜索库的路径
    例如 :有一个库A所在的路径是目录B
-LB
  • -l(小写的L) 给gcc 指定具体的库
    例如:gcc需要一个库A
-lA

整体举例:

CC=g++
CFLAGS=-g
BIN=main
OBJS=main.o
LIBS=-I/usr/include/mysql -L/usr/lib64/mysql -lmysqlclient -ljsoncpp -lpthread -std=c++11

$(BIN):$(OBJS)
    $(CC) $(CFLAGS) $^ -o $@
%.o:%.cpp
    $(CC) $(CFLAGS) -c $< -o $@ $(LIBS)

.PHONY:clean
clean:
    rm -f *.o $(BIN)

以上是关于GCC中 -I-L-l 选项的作用的主要内容,如果未能解决你的问题,请参考以下文章

GCC:编译成程序集并明确与代码的对应关系?

GCC:程序不适用于编译选项 -O3

GCC -fPIC 选项

GCC -fobjc-direct-dispatch 选项到底有啥作用?

FragmentTransaction 隐藏/显示有时不起作用

Android - 一个选项卡中的多个片段