gcc 编译小笔记

2023-11-03

最近在测试编译个程序的时候发现无论如何都没法正常编译,命令行是这样的:

gcc -I../../include/ -L../../lib -lVU -lfftw3f -lvsip -lfftw -lfftw3f -lrfftw conv1dEx.c 

一直报链接错误,但是库文件名字和路径都指定了的(-L -l),我甚至把那些.a的静态库ar x全部解开,然后nm去遍历.o文件包含的符号了,函数确实是有的,但就是报未定义。

晚上有点时间再次测试了一下,发现我自己用法有问题:

gcc -I../../include/ -L../../lib ./conv1dEx.c  -lVU -lfftw3f -lvsip -lfftw -lfftw3f -lrfftw 

这么写就对了,原因是在百度到一篇其他人总结的文章中找到。

https://www.cnblogs.com/ezrealiu/p/the-order-of_-l-option-in-gcc-command.htmlicon-default.png?t=N2N8https://www.cnblogs.com/ezrealiu/p/the-order-of_-l-option-in-gcc-command.html连接器在链接过程中,对搜索的库,只会做一次扫描,排在本静态库(动态库好像也是这样)前面的目标文件(或者库文件中)中如果含有未定义的符号在本静态库中找到,那么连接器会把对应的.o文件链接进来,但是如果在本静态库后面的目标文件中有未定义的符号在本静态库中找到,那么本静态库包含的对应.o文件是不会被链接的。所以看来静态库这种这个顺序还挺重要啊。

ld的man里面还说可以用-(来让ld多次搜索库里面的符号,暂时没找到如何传给ld。后面找到再补吧。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

gcc 编译小笔记 的相关文章

  • Unity(使用GUI制作第一人称鼠标准星)

    属性 简介 方法 注意 准星一般都放在屏幕正中央 所以屏幕的 宽高 2 可得中心点 屏幕宽度 Screen Width 屏幕高度 Screen Height 矩形宽度 自己声明的变量这里使用W代替 矩形高度 自己声明的变量这里使用H代替 准
  • 全国大学生物联网设计竞赛作品

    本文分享自中移OneOS微信公众号 全国大学生物联网设计竞赛优秀作品巡展 陪你长大 智慧养鸡小助手 近几年 鸡福利养殖越来越受关注 表现动物的天性是动物福利定义之一 保证家鸡有合适的活动空间和足够的有氧运动 才能保证拥有动物的天性 对家鸡的
  • 前端项目上线优化

    1 格式化代码 使用eslint 代码检查代码的格式 vs code 想要格式化 vue 文件 需要安装 vetur插件 可以格式化代码并且变成彩色 atl shif f快捷键 vetur格式化格式化代码 还是不符合 eslint 规范 字
  • Docker容器应用日志查看

    docker attach命令 docker attach options 容器会连接到正在运行的容器 然后将容器的标准输入 输出和错误流信息附在本地打印出来 命令中options的取值有三种 detach keys no stdin si
  • 墨盒和墨仓打印机区别?

    打印机有激光打印机 喷墨打印机 针式打印机等多个种类 其中日常文件打印最长使用到的就是激光打印机和喷墨打印机 喷墨打印机分两种类 1 墨仓式喷墨打印机 2 墨盒式喷墨打印机 1 供墨方式不一样 墨盒式喷墨打印机 使用的是独立的墨盒装入打印机
  • 正大新闻:炒期货巨亏7000万引股价大跌豪悦护理回购+增持

    昨日晚间 上市公司豪悦护理发布公告称 拟以1 4亿元 2亿元回购股份 回购价格不超过75元 股 另外 其控股股东 实际控制人李志彪拟3个月内增持2000万元 5000万元 值得注意的是 通过近几日的公告可以发现 此次回购或为豪悦护理对近日因

随机推荐

  • 想要设计自己的微服务?看这篇文章就对了

    欢迎大家前往腾讯云 社区 获取更多腾讯海量技术实践干货哦 本文由我就静静地看 发表于云 社区专栏 本文通过使用Spring Boot Spring Cloud和Docker构建的概念验证应用程序的示例 为了解常见的微服务架构模式提供了一个起
  • 前端练手项目合集40.0个,附源码,2022年最新

    今天分享40个博主平时收集整理的前端练手项目 都是一些适合前端新手的小项目合集 1 网易云音乐首页制作 2 实战项目之今日头条 3 实战项目之拉勾网 4 ReactNative项目之美食APP 5 uni APP项目实战教程 6 React
  • 测试人员掌握基本Linux命令——查看日志(实时日志)

    很多初级测试人员 在进行执行测试用例这个步骤时 发现bug 不能更加的准确去定位bug 在这样的情况下就可以打开Linux服务器 敲命令查看操作进行中的实时日志 当系统报错时 可以截图日志在缺陷管理系统中 开发人员就知道什么地方错了 操作步
  • rocksdb原理_ceph性能调优历程-rocksdb篇(1)

    最近调优及其他工作实在太忙 没有太多时间写心得 今天抽空来总结一下阶段性成果吧 从一开始的ceph调研 系统调优开始 ceph集群存储大规模数据之后 集群文件数超过2亿 rgw并发写性能下降的问题一直困扰我们 终于在最近找到了原因及相关解决
  • C++primer Plus 第七章复习题

    1 使用函数的3个步骤是什么 定义函数 提供原型 调用函数 2 请创建与下面的描述匹配的函数原型 igor 没有参数 且没有返回值 void igor tofu 接受一个int参数 并返回一个float float tofu int mpg
  • 去除discuz手机版链接&mobile=2后缀

    discuz手机版链接自动添加 mobile 2 导致百度收录的手机版链接无法打开 解决思路 1 打开 source class helper helper mobile php文件搜索下面代码 约在22行 content preg rep
  • malloc的底层实现(ptmalloc)

    前言 本文主要介绍了ptmalloc对于内存分配的管理 结合网上的一些文章和个人的理解 对ptmalloc的实现原理做一些总结 内存布局 介绍ptmalloc之前 我们先了解一下内存布局 以x86的32位系统为例 从上图可以看到 栈至顶向下
  • 【深度学习】_amax() got an unexpected keyword argument ‘dim‘ 解决方案

    在定义一个点云数据pc后 想使用pc max dim 0 然后出现了 amax got an unexpected keyword argument dim 这个是因为对于tensor类型的数据和ndarray类型的数据都有一个max mi
  • 彻底搞懂字符编码ASCII,GB2312,UNICODE,UTF-8

    文章目录 基础 什么是字符编码 正文 ASCII ASCII扩展码 GB2312 GBK DBCS UNICODE UTF 8 UTF 16 USC 2 UTF 32 USC 4 编程语言对字符编码的支持 阅读了一篇关于编码的博客 点击打开
  • Matlab实现PSO算法(附上10个完整仿真源码)

    PSO Particle Swarm Optimization 是一种优化算法 它模拟了鸟群或鱼群等动物的集体行为 通过群体智能的方式来解决优化问题 PSO算法最初由Kennedy和Eberhart在1995年提出 近年来得到了广泛的应用
  • 区块链上的订阅

    为分散式应用程式 以太坊 实施订阅模型 Luca Bravo在Unsplash上拍摄的背景照片 以太坊徽标 火种金标志 介绍 您可能已经听说过 去中心化的应用程序将成为互联网的未来 为了使这个分散的生态系统蓬勃发展并可持续发展 我们将需要许
  • 人工智能数学基础---定积分2:定积分的性质

    一 引言 在 人工智能数学基础 定积分1 定积分的概念以及近似计算 介绍了定积分的概念 几何意义 用定义来求定积分的案例以及使用矩形法 梯形法和抛物线法求定积分近似值的方法和案例等基础知识 根据上文的介绍 结合相关知识补充如下2条规则 可以
  • #pragma once 与#ifndef 的区别解析

    原文地址 http blog csdn net hkx1n article details 4313303 作用 为了避免同一个文件被include多次 C C 中有两种方式 一种是 ifndef方式 一种是 pragma once方式 在
  • linux 查看文件的inode使用情况

    linux 查看文件的inode使用情况 查看文件的空间使用情况 root racdb01 df h Filesystem Size Used Avail Use Mounted on dev mapper vg lgoracle lv r
  • Hutool工具BeanUtil.copyProperties实现自定义类型转换器之字符串转时间格式化

    hutool工具BeanUtil copyProperties在字符串转LocalDateTime时默认用的格式为yyyy MM ddTHH mm ss 所以需要自定义转换器才行 在转换时会优先使用自定义的 在项目启动时执行一次此段代码即可
  • Vue-cli 与Vite 环境搭建与项目构建

    Vue cli 与Vite 环境搭建与项目构建 在之前的语法演示中 我们直接使用 script 引入 Vue 3 从而在浏览器里实现了所有调试功能 但是在实际的项目中 我们会使用专门的调试工具 在项目上线之前 代码也需要打包压缩 并且考虑到
  • $.extend插件的开发与代码的编写

    extend插件的开发与代码的编写 extend item 该方法是将item合并到Jquery的全局对象中去 相当于为Jquery全局对象添加了一个静态方法 extend SayHello function value alert hel
  • Golang(Go语言)内置函数之append

    append主要用于给某个切片 slice 追加元素 如果该切片存储空间 cap 足够 就直接追加 长度 len 变长 如果空间不足 就会重新开辟内存 并将之前的元素和新的元素一同拷贝进去 第一个参数为切片 后面是该切片存储元素类型的可变参
  • TCP超时编程

    2018 2 12http blog csdn net NK test article details 49050379 这个是超时相关的设置 不过比较麻烦的就是 还有很多错误的设置比较难 C的却是太底层的底层的东西 http blog c
  • gcc 编译小笔记

    最近在测试编译个程序的时候发现无论如何都没法正常编译 命令行是这样的 gcc I include L lib lVU lfftw3f lvsip lfftw lfftw3f lrfftw conv1dEx c 一直报链接错误 但是库文件名字