Linux gcc 编译日记

gcc 编译器是众多编译器组合入口,例如在编译 .cpp 文件时,使用c++ 编译器,编译.c 文件时,使用c编译器。

在编译c++程序时, 库文件与头文件可通过 -L[dir] 指定库目录 , -l[name] 指定库文件名称。指定库文件名称时,需按照指定范式。例如库文件 libabc.a ,  [lib]abc[.a] 中括号部份默认乎略, 此时库文件名称为: abc ,因此在gcc 编译时,通过 -labc 来加载该库.

通常c++ 程序会用到标准库,例如代码中包含 string
#include<string>

using namespace std;

在编译时,会遇到fatal error: string: No such file or directory compilation terminated , 因为代码中使用了标准库代码,编译时,没包含该库。c++标准(静态/动态)库名称是: libstdc++.a  , libstdc++.so , 因此编译时gcc指令附加 -lstdc++

gcc -I/usr/include/openssl/ -Wall testzs.cpp -o testzsexe  -lcrypto -ldl -lstdc++

这条指令包含了3个库 , -o 输出编译结果为:testzsexe , -Wall 表示输出全部编译警告信息, 如果将 -Wall 改为 -Werror , 表示遇到警告信息时,停止编译。 -I 指定库头文件路径。本例中也可不指定 /I指令。因为 /usr/include 是系统默认头文件路径。 在代码中使用 #include<openssl/....h> 即可。

在window 平台代码移值到linux 时,遇到如下异常: fopen_s?was not declared in this scop , 在linux 中没有fopen_s(...)函数, 因此,要么始用linux 平台的fopen 函数,或者重新实现 fopen_s 函数。

转载于:https://www.cnblogs.com/a_bu/p/4460858.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值