gcc链接详细参数(gcc 链接命令)
大家好!今天让创意岭的小编来大家介绍下关于gcc链接详细参数的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。
开始之前先推荐一个非常厉害的Ai人工智能工具,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等
只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端
创意岭作为行业内优秀的企业,服务客户遍布全球各地,如需了解SEO相关业务请拨打电话175-8598-2043,或添加微信:1454722008
本文目录:
一、怎么在命令行里用gcc去编译连接一个程序?
你的说法本身就有问题,gcc编译的时候只能去链接 其他依赖文件和库(静态库/动态库)
动态库:.so结尾,在运行时加载。
静态库:.a结尾,在编译时加载。
例如编译hello.c 输出hello可执行文件
链接静态库:
gcc hello.c -L /home/lib -static -l mylib -o hello
-L参数可以向gcc的库文件搜索路径中添加新目录
-static选项强制使用静态链接库
-l mylib -l后面是要静态连接的库(libhellos.a)
链接动态库:
gcc -o hello hello.c -L. -lhello
-L后面的点为当前目录
-lhello 是去链接libhello.so
二、GCC编译器的参数与空格
按照INSTALL中的介绍,也是常用的方法,在configure的时候,加上–host=arm-linux,结果没有实现我们要的效果,没有将编译器从默认的
gcc改成arm-linux-gcc,编译器还是用的默认的gcc:
[crifan@localhost
lrzsz-0.12.20]$
CFLAGS=-O2
./configure
–host=arm-linux
loading
cache
./config.cache
………………..
checking
for
gcc…
(cached)
gcc
checking
whether
the
C
compiler
(gcc
-O2
)
works…
yes
checking
whether
the
C
compiler
(gcc
-O2
)
is
a
cross-compiler…
no
………………..
后来经过多次尝试,最后受默认的
CFLAGS=-O2
./configure
进行配置所启发,想到,是否可以将CC参数传入到configure中,
结果证实,如果没有自己的cache-file,即时加了对的CC参数,也还是无法传入:
[crifan@localhost
lrzsz-0.12.20]$
CFLAGS=-O2
CC=arm-linux-gcc
./configure
–host=arm-linux
loading
cache
./config.cache
………………..
checking
for
gcc…
(cached)
gcc
checking
whether
the
C
compiler
(gcc
-O2
)
works…
yes
checking
whether
the
C
compiler
(gcc
-O2
)
is
a
cross-compiler…
no
checking
whether
we
are
using
GNU
C…
(cached)
yes
………………..
而且,如果CC参数放在configure后面:
./configure
CC=arm-linux-gcc
则不能识别:
[crifan@localhost
lrzsz-0.12.20]$
CFLAGS=-O2
./configure
CC=arm-linux-gcc
configure:
warning:
CC=arm-linux-gcc:
invalid
host
type
………………..
参数传递必须像
CFLAGS=-O2
./configure
一样,将参数设置放在configure的前面:
CC=arm-linux-gcc./configure
才能识别的。
必须要自己制定自己的cache-file
然后用./configure进行新配置,加上CC参数,才会即时生效,编译器才可以变成我们要的arm-linux-gcc:
[crifan@localhost
lrzsz-0.12.20]$
CC=arm-linux-gcc
./configure
–cache-file=cache_file_0
–prefix=/usr/crifan/lrzsz
………………..
checking
for
gcc…
arm-linux-gcc
checking
whether
the
C
compiler
(arm-linux-gcc
)
works…
yes
checking
whether
the
C
compiler
(arm-linux-gcc
)
is
a
cross-compiler…
yes
checking
whether
we
are
using
GNU
C…
yes
………………..
否则,就无法将我们的CC参数传入了:
[crifan@localhost
lrzsz-0.12.20]$
CC=arm-linux-gcc
./configure
–prefix=/usr/crifan/lrzsz
………………..
checking
for
gcc…
(cached)
gcc
checking
whether
the
C
compiler
(gcc
)
works…
yes
checking
whether
the
C
compiler
(gcc
)
is
a
cross-compiler…
no
checking
whether
we
are
using
GNU
C…
(cached)
yes
………………..
[crifan@localhost
lrzsz-0.12.20]$
CFLAGS=-O2
CC=arm-linux-gcc
./configure
–cache-file=cache_file_0
loading
cache
cache_file_0
………………..
checking
for
gcc…
arm-linux-gcc
checking
whether
the
C
compiler
(arm-linux-gcc
-O2
)
works…
yes
checking
whether
the
C
compiler
(arm-linux-gcc
-O2
)
is
a
cross-compiler…
yes
checking
whether
we
are
using
GNU
C…
yes
最好此处在加上–prefix=/usr/crifan/lrzsz,表示具体安装到哪里
[crifan@localhost
lrzsz-0.12.20]$
CFLAGS=-O2
CC=arm-linux-gcc
./configure
–cache-file=cache_file_0
–prefix=/usr/crifan/lrzsz
loading
cache
cache_file_0
………………..
checking
for
gcc…
arm-linux-gcc
checking
whether
the
C
compiler
(arm-linux-gcc
-O2
)
works…
yes
checking
whether
the
C
compiler
(arm-linux-gcc
-O2
)
is
a
cross-compiler…
yes
checking
whether
we
are
using
GNU
C…
yes
………………..
其中,/usr/crifan/lrzsz是已经建立好的,已经存在的文件夹,上面这样表示编译后,
将生成的可执行文件安装拷贝到那个目录.
三、LINUX下的GCC详细教程,带图片的
//FileName : hello.c
#include <stdio.h>
int main()
{
const char * str = "Hello World!";
return 0;
}
标准用法:
gcc -c hello.c
ls查看 生成了 hello.c hello.o
gcc -o hello.o
ls查看 多了 a.out
执行: ./a.out
Hello World
常用的用法:
gcc -o hello hello.c
这样就直接编译链接生成可执行文件hello
./hello
Hello World
不推荐的用法:
gcc hello.c
直接生成a.out
./a.out
Hello World
GCC的命令参数有一百多条,常用的还有-Wall参数 用于显示忽略的警告
-pthread 多线程编译 。。。。。。
可以在命令行下使用 man gcc 查看gcc详细的参数和说明文档
四、R 包安装的时候,怎么指定gcc的参数
Mac中的开发工具链都是围绕xcode的,但是对于只想使用gcc,g++编译c/c++代码的情况,装一个xcode实在没有必要。更新:4.3版本的xcode已经将图形开发界面和命令行工具分开了发布了。还有即使装了xcode,默认带的gcc编译器都是lvmm做前端的,并非纯正的gnugcc。如果你想用纯正的gcc,最好的法就是自己手动编译一个。主要有以下方法:1.通过port安装这种方法比较简单,前提是mac上已经安装port了,具体命令:安装最新的gcc48:sudoportinstallgcc48默认的安装目录是:/opt/local/bin/2.通过homebrew安装这种方法比较简单,前提是mac上已经安装homebrew了,具体命令:brewtaphomebrew/versionsbrewinstall[flags]gcc49其中[flags]一些需要支持的语言的桉树,例如–enable-cxx–enable-fortran3.Github参考mentforcleanup…#cd../../..#rm-rtemp-gcc完成后,将在/usr/gcc-4.8.0安装gcc,然后可以创建gcc的软链接或者将bin路径加入到$PAHT变量中
以上就是关于gcc链接详细参数相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。
推荐阅读: