【问题标题】:gcc Compling and linking object file and source file at the same timegcc 同时编译和链接目标文件和源文件
【发布时间】:2021-06-28 08:55:26
【问题描述】:

简而言之,问题是我有一些目标文件(比如a.ob.o)和一些源文件(f.cg.c) 我必须一步完成编译和链接。

这就是我正在做的,但我不认为这是至少我应该提供类似-l-L 的链接方式

gcc -Wall -O0 -ggdb -fPIC  a.o b.o f.c g.c -o executable

【问题讨论】:

  • edit您的问题并说明您的命令是否有效。如果没有,请添加具体不起作用的细节。如果您收到错误消息,请复制并粘贴它。你的意思是-Wall -O0(带有大写的W和O)?请始终将您的代码复制并粘贴到问题中,而不是重新输入。仅当您的程序使用默认未链接的库时才需要-l,如果您使用的库不在系统或编译器的默认库目录中,则需要-L
  • 为什么一定要一步到位?
  • @Bodo 编辑了问题
  • @user16323802 您编辑了错别字,但您没有告诉我们该命令是否有效,如果无效,究竟是什么无效。
  • 我的命令正在运行,但我对使用有疑问。 C和。 O文件一起是好的做法还是不是@Bodo

标签: css linux gcc compilation


【解决方案1】:

这是正确的方法,-l 用于链接库(例如,ptheads 库需要-lpthread),-L 用于将目录添加到链接器查找库的目录文件。

以这种方式编译软件没有任何问题。 大多数构建系统一次构建一个文件,以避免在源文件未修改且目标文件仍然存在的情况下必须重新构建目标文件。如果你对重建代码没问题,那么你的方法是完全有效的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-08
    • 1970-01-01
    • 2012-06-08
    相关资源
    最近更新 更多