扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
我是进行多文件编译,调用了两个开源库函数。我在我自己的虚拟机上的Fedora系统上能够编译连接通过并顺利执行,但是切换到Ubuntu系统的时候,各个文件单独编译能够编译通过,但是把各个目标文件连接成可执行文件的时候却报错,undefined reference to所有的引用的库函数。
于是我搜索了各种相关问题的原因,并一遍一遍地尝试,最终在调整了连接命令的顺序之后在Ubuntu上连接通过。我的Makefile文件中连接生成可执行文件命令如下:
$(CC) $(CFLAGS) -I$(INCLUDEX) -I$(INCLUDEH) -L$(LOCAL) $(LIB) $(OBJECTS) -o s3
这在Fedora下能够连接正确;但是在Ubuntu下报错。于是我修改成了如下语句:
$(CC) $(CFLAGS) -I$(INCLUDEX) -I$(INCLUDEH) -L$(LOCAL) -o s3 $(OBJECTS) $(LIB)
连接成功!
其中OBJECTS= object_response_header.o request_analysis.o bucket_response_header.o delete_bucket.o xml.o container.o
我想这可能和Fedora以及Ubuntu的连接机制不同,仅供参考。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流