提示

MFCompressD.o:在函数‘main’中:
MFCompressD.c:(.text.startup+0x34a): 警告: the use of `tempnam' is dangerous, better use `mkstemp'
MFCompressD.o:在函数‘DecodeSeqBlock’中:
MFCompressD.c:(.text+0x149):对‘GetInfoPModelIdx’未定义的引用
MFCompressD.c:(.text+0x20c):对‘GetPModelIdx4’未定义的引用
MFCompressD.c:(.text+0x335):对‘GetPModelIdx4’未定义的引用
MFCompressD.c:(.text+0x366):对‘GetPModelIdxAux4’未定义的引用
MFCompressD.c:(.text+0x3dc):对‘GetPModelIdxAux4’未定义的引用
MFCompressD.c:(.text+0x461):对‘GetInfoPModelIdx’未定义的引用
MFCompressD.c:(.text+0x561):对‘GetPModelIdx2’未定义的引用

解决方法 重新编译

gcc -c -O2 -Wall -D_FILE_OFFSET_BITS=64 -o fcm.o fcm.c -fgnu89-inline

为何这样?

gcc -c -O2 -Wall -D_FILE_OFFSET_BITS=64 -o MFCompressD.o MFCompressD.c

出警告
In file included from MFCompressD.c:40:0:
fcm.h:164:13: warning: inline function ‘GetInfoPModelIdx’ declared but never defined
inline void GetInfoPModelIdx(Symbol *symbolPtr, CModel *cModel);
^~~~~~~~~~~~~~~~
fcm.h:162:13: warning: inline function ‘GetPModelIdxAux4’ declared but never defined
inline void GetPModelIdxAux4(Symbol *symbolPtr, CModel *cModel,
^~~~~~~~~~~~~~~~
fcm.h:160:13: warning: inline function ‘GetPModelIdx4’ declared but never defined
inline void GetPModelIdx4(Symbol *symbolPtr, CModel *cModel,
^~~~~~~~~~~~~
fcm.h:159:13: warning: inline function ‘GetPModelIdx2’ declared but never defined
inline void GetPModelIdx2(Symbol *symbolPtr, CModel *cModel);

gcc编译时遇到“inline function '***' declared but never defined"问题

在编译时添加选项 “-fgnu89-inline”,重新编译即可。

注意不是在“make”后面添加“-fgnu89-inline”,是在Makefile里在使用gcc编译的地方添加“-fgnu89-inline”。

最后

gcc -o main MFCompressD.o mem.o fasta.o fcm.o io.o bitio.o arith.o arith_aux.o -lm

MFCompressD.o:在函数‘main’中:
MFCompressD.c:(.text.startup+0x34a): 警告: the use of `tempnam' is dangerous, better use `mkstemp'

运行 结果

*@*:~/下载/压缩/MFCompress-src-1.01$ ./main
Usage: MFCompressD [ -o MultiFastaFile ]
[ -v (verbose) ]
[ -V (verbose) ]
[ -t maxProcs (def 2) ]
[ -r recordRange (i:j or i) ]
[ -i (display file info) ]
EncodedFile
*@*:~/下载/压缩/MFCompress-src-1.01$ ^C

源码在此

https://files.cnblogs.com/files/marklove/MFCompress-src-1.01.tgz.zip

编译压缩代码 MFCompress-src-1.01 :对‘***’未定义的引用的更多相关文章

  1. GCC 高版本7.4 编译链接 boost 报错 boost::thread::XXX’未定义的引用 解决方法

    背景:开发中的项目之前一直用GCC4.8,boost库1.48版本的开发环境.现在因业务需求,需要更换GCC7.4,boost库1.70. 问题:可以正常编译BOOST的链接库文件,但是链接时候报错. ...

  2. c语言中在引用math库后,编译出现错误(.text+0x9c):对‘sqrt’未定义的引用的解决办法

    写于2016年11月29日晚. 原因是gcc编译器没有引用默认的math库,需要在执行编译命令时加上-ml.例如: gcc 源文件 -ml -o 编译后文件名 或者 gcc 源文件 -lm -o 编译 ...

  3. 编译lua5.3.2报错提示libreadline.so存在未定义的引用解决方法

    从官网上下载5.3.2的源码后,make linux进行编译,提示报错: gcc -std=gnu99 -o lua lua.o liblua.a -lm -Wl,-E -ldl -lreadline ...

  4. (原)编译caffe时提示未定义的引用(undefined reference to)

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5864715.html 参考网址: https://github.com/BVLC/caffe/issu ...

  5. gcc编译时对'xxxx'未定义的引用问题

    gcc编译时对’xxxx’未定义的引用问题 gcc编译时对’xxxx’未定义的引用问题 原因 解决办法 gcc 依赖顺序问题 在使用gcc编译的时候有时候会碰到这样的问题,编译为.o(obj) 文件没 ...

  6. oci7编译报’olog’等未定义的引用问题

    前一天在测试一个数据导出的时候,发现oci7编译的时候报了一大堆类似"’oparse’未定义的引用问题",这通常是因为找不到实现库的原因,但是oci相关的库又都是存在的,用oci7 ...

  7. 【转】 g++编译时对'xxxx'未定义的引用问题(undefined reference to)

    转自:https://blog.csdn.net/killwho/article/details/53785910 引用:http://www.linuxdiyf.com/linux/16754.ht ...

  8. gcc编译时对’xxxx’未定义的引用问题

    gcc编译时对’xxxx’未定义的引用问题 原因 解决办法 gcc 依赖顺序问题 在使用gcc编译的时候有时候会碰到这样的问题,编译为.o(obj) 文件没有问题,但是编译(这一步应该是链接)为可执行 ...

  9. gcc/g++ 编译时出现:“对’xxxx’未定义的引用,collect2: error: ld returned 1 exit status” 的错误

    出现的问题: 在使用 make 编译实现一个程序时,出现了下面的错误.查看程序源文件所在的目录时发现程序已经完成了编译,并生成了 list_repo.o 的文件,说明是在程序链接生成可执行文件时发生了 ...

随机推荐

  1. Python装饰器单例

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/dutsoft/article/details/52057981#!/usr/bin/python#c ...

  2. String 对象

    1 你使用位置(索引)可以访问字符串中任何的字符: var str="this is a demo"; alert(str[3])//    s 字符串的索引从零开始, 所以字符串 ...

  3. 重启fpm

    ps aux | grep php-fpm cat /etc/php-fpm.conf kill -USR2 `cat /run/php-fpm/php-fpm.pid

  4. 洛谷 P2754 星际转移问题【最大流】

    判无解的方法非常粗暴:快T了还是没有合法方案,就是无解. 然后枚举答案,对于每一天都建一套太空站,s连地球,t连月球,上一天的太空站连向这一天的太空站,流量均为inf.然后对于每个飞船,上一天的停靠站 ...

  5. 【Android跨进程】IPC总结

    前言 IPC是Inter-Process Communication的缩写,含义就是进程间通信或者跨进程通信,是指两个进程之间进行数据交换的过程.两个进程可以是两个独立的app也可以是一个app的两个 ...

  6. 在JS/jQuery中,怎么触发input的keypress/keydown/keyup事件?

    怎么触发keypress/keydown/keyup事件? 问题: 1.在之前的写的input后面添加了搜索按钮 2.input只有keyup事件,如下: $("#desktop_folde ...

  7. c语言程序设计案例教程(第2版)笔记(五)-软件开发基础知识

    零散知识点: 软件的主要特征 软件是一种逻辑产品,而不是有型的物质: 软件需要设计.开发,但不是传统意义上的产品制造: 软件不会磨损,但软件需要维护,即:修改代码或增加模块: 虽然软件行业正在向基于组 ...

  8. Java标识符的习惯命名规范

    1 常量标识符:全部用大写字母和下划线表示.如SALES_MAX 2 类名或接口名:标识符用大写字母开头.如CreditCard 3 变量名和方法名:以小写字母开头,单词之间不要有分隔符,第二 及后面 ...

  9. css靠左,靠右

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. (五)Mybatis总结之一对多、一对一

    一对多 业务场景:张三既是java开发师又是大学老师又是LOL代练,张三拥有多个角色. 1.创建实体类UserInfo和RoleInfo package com.qf.mybatisdemo.pojo ...