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 [email protected]
%.o:%.cpp
    $(CC) $(CFLAGS) -c $< -o [email protected] $(LIBS)

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

原文地址:https://www.cnblogs.com/WindSun/p/12286024.html

时间: 2024-10-15 11:30:19

GCC中 -I、-L、-l 选项的作用的相关文章

GCC 中 -L、-rpath和-rpath-link的区别

GCC 中 -L.-rpath和-rpath-link的区别 来源 http://blog.csdn.net/q1302182594/article/details/42102961 关于这3个参数的说明,有不少资料,但是看完了还是觉得模糊,分不清它们的区别.本文将用实验的方法去探讨这3个参数的区别. 1.三个.c文件 1.1 world.c #include<stdio.h> void world(void) { printf("world.\n"); } 1.2 hel

s?h?e?l?l?中?条?件?判?断?i?f?中?的?-?z?到?-?d?

shell中条件判断if中的-z到-d的意思 2011-09-05 10:30 [ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真. [ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真. [ -d FILE ] 如果 FILE 存在且是一个目录则为真. [ -e FILE ] 如果 FILE 存在则为真. [ -f FILE ] 如果 FILE 存在且是一个普通文件则为真. [ -g FILE ] 如果 F

C语言合并两个集合(L,L1) 将L1中不在L中的元素插入到L线性表中

void main(){ Sqlist L,L1; InitList(&L); InitList(&L1); ListInsert(&L, 1, 2); ListInsert(&L, 2, 3); ListInsert(&L, 1, 1); ListInsert(&L1,1,1); ListInsert(&L1,2,2); ListInsert(&L1,3,4); for (int i = 0; i <L1.length; i++) {

spring注解方式实现定时器,并且cron表达式中不识别L的方法

1.Spring的配置: <beans xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation="http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd"> <!--开启这个配置,spring才能识别@

数据结构顺序表中Sqlist *L,&amp;L,Sqlist *&amp;L

//定义顺序表L的结构体 2 typedef struct 3 { 4 Elemtype data[MaxSize]: 5 int length; 6 }SqList; 7 8 //建立顺序表 9 void CreateList(SqList * &L,ElemType a[ ],int n) 10 { 11 int i; 12 L = (SqList * )malloc(sizeof(SqList)); 13 for(i = 0 ; i < n ; i++) 14 L->data[i

Linux gcc中的LIBRARY_PATH 和 LD_LIBRARY_PATH

1. GNU 上关于LIBRARY_PATH的说明: LIBRARY_PATH The value of LIBRARY_PATH is a colon-separated list of directories, much like PATH. When configured as a native compiler, GCC tries the directories thus specified when searching for special linker files, if it

SSH远程登录、.sh文件后缀运行、l l命令结果说明、VIM模式切换

目录 SSH远程登录..sh文件后缀运行.l l命令结果说明.VIM模式切换 SSH远程安全登录 .sh文件后缀运行 l l命令结果说明 VIM模式切换 SSH远程登录..sh文件后缀运行.l l命令结果说明.VIM模式切换 SSH远程安全登录 SSH为网络协议,专门为远程登录会话和其他网络服务提供安全性的协议,用于在计算机之间的加密登录,对数据进行加密. SSH主要用于远程登录,主要有口令登录和公钥登录,现简单说下口令登录基本用法: #使用root账户登录远程主机 默认端口是22 可以修改端口

D?e?p?l?o?y?m?e?n?t? ?f?a?i?l?u?r?e? ?o?n? ?T?o?m?c?a?t? ?6?.?x?.? ?C?o?u?l?d? ?n?o?t? ?c?o?p?y? ?a?l?l? ?r?e?s?o?u?r?c?e?s? ?t?o

在myeclipse总部署项目,一直有问题,提示如下的错误,经过研究在网上需求帮助,解决方案如下: Deployment failure on Tomcat  6.x. Could not copy all resources to D: \Program Files\apache-tomcat-6.0.16\webapps\fuNan_conv. If a file is loc ked, you can wait until the lock times out to redeploy, o

makefile中的all和.PHONY的作用

请编写一个makefile同时编译.链接下面两个程序: 1 main1.c: 2 #include<stdio.h> 3 int main(void) 4 { 5 printf("main1\n"); 6 } 7 main2.c: 8 #include<stdio.h> 9 int main(void) 10 { 11 printf("main2\n"); 12 } [分析]:这里需要生成两个可执行文件main1和main2(两个目标).由于