当前位置: 首页 > news >正文

python做网站快么合肥企业网站设计制作

python做网站快么,合肥企业网站设计制作,网站地图制作视频教程,在哪租用网站关于undefined reference这样的问题#xff0c;大家其实经常会遇到#xff0c;在此#xff0c;我以详细地示例给出常见错误的各种原因以及解决方法#xff0c;希望对初学者有所帮助。 1. 链接时缺失了相关目标文件#xff08;.o#xff09; 测试代码如下#xff1a; 然… 关于undefined reference这样的问题大家其实经常会遇到在此我以详细地示例给出常见错误的各种原因以及解决方法希望对初学者有所帮助。 1.  链接时缺失了相关目标文件.o 测试代码如下 然后编译。 gcc -c test.c  gcc –c main.c  得到两个 .o 文件一个是 main.o一个是 test.o 然后我们链接 .o 得到可执行程序 gcc -o main main.o 这时你会发现报错了 main.o: In function main:  main.c:(.text0x7): undefined reference to test  collect2: ld returned 1 exit status  这就是最典型的undefined reference错误因为在链接时发现找不到某个函数的实现文件本例中test.o文件中包含了test()函数的实现所以如果按下面这种方式链接就没事了。 gcc -o main main.o test.o  【扩展】其实上面为了让大家更加清楚底层原因我把编译链接分开了下面这样编译也会报undefined reference错其实底层原因与上面是一样的。 gcc -o main main.c //缺少test()的实现文件  需要改成如下形式才能成功将test()函数的实现文件一起编译。 gcc -o main main.c test.c //ok,没问题了  2.    链接时缺少相关的库文件.a/.so 在此只举个静态库的例子假设源码如下。 先把test.c编译成静态库(.a)文件 gcc -c test.c  ar -rc test.a test.o  至此我们得到了test.a文件。我们开始编译main.c gcc -c main.c  这时则生成了main.o文件然后我们再通过如下命令进行链接希望得到可执行程序。 gcc -o main main.o  你会发现编译器报错了 /tmp/ccCPA13l.o: In function main:  main.c:(.text0x7): undefined reference to test  collect2: ld returned 1 exit status  其根本原因也是找不到test()函数的实现文件由于该test()函数的实现在test.a这个静态库中的故在链接的时候需要在其后加入test.a这个库链接命令修改为如下形式即可。 gcc -o main main.o ./test.a  //注./ 是给出了test.a的路径  【扩展】同样为了把问题说清楚上面我们把代码的编译链接分开了如果希望一次性生成可执行程序则可以对main.c和test.a执行如下命令。 gcc -o main main.c ./test.a  //同样如果不加test.a也会报错  3.    链接的库文件中又使用了另一个库文件 这种问题比较隐蔽也是我最近遇到的与网上大家讨论的不同的问题举例说明如下首先还是看看测试代码。 从上图可以看出main.c调用了test.c的函数test.c中又调用了fun.c的函数。     首先我们先对fun.ctest.cmain.c进行编译生成 .o文件。 gcc -c func.c  gcc -c test.c  gcc -c main.c  然后将test.c和func.c各自打包成为静态库文件。 ar –rc func.a func.o  ar –rc test.a test.o  这时我们准备将main.o链接为可执行程序由于我们的main.c中包含了对test()的调用因此应该在链接时将test.a作为我们的库文件链接命令如下。 gcc -o main main.o test.a  这时编译器仍然会报错如下 test.a(test.o): In function test:  test.c:(.text0x13): undefined reference to func  collect2: ld returned 1 exit status  就是说链接的时候发现我们的test.a调用了func()函数找不到对应的实现。由此我们发现原来我们还需要将test.a所引用到的库文件也加进来才能成功链接因此命令如下。 gcc -o main main.o test.a func.a  ok这样就可以成功得到最终的程序了。同样如果我们的库或者程序中引用了第三方库如pthread.a则同样在链接的时候需要给出第三方库的路径和库文件否则就会得到undefined reference的错误。 4 多个库文件链接顺序问题 这种问题也非常的隐蔽不仔细研究你可能会感到非常地莫名其妙。我们依然回到第3小节所讨论的问题中在最后如果我们把链接的库的顺序换一下看看会发生什么结果 gcc -o main main.o func.a test.a  我们会得到如下报错. test.a(test.o): In function test:  test.c:(.text0x13): undefined reference to func  collect2: ld returned 1 exit status  因此我们需要注意在链接命令中给出所依赖的库时需要注意库之间的依赖顺序依赖其他库的库一定要放到被依赖库的前面这样才能真正避免undefined reference的错误完成编译链接。 5. 在c代码中链接C语言的库 如果你的库文件由c代码生成的则在c代码中链接库中的函数时也会碰到undefined reference的问题。下面举例说明。 首先编写c语言版库文件  编译打包为静态库test.a gcc -c test.c  ar -rc test.a test.o  至此我们得到了test.a文件。下面我们开始编写c文件main.cpp 然后编译main.cpp生成可执行程序 g -o main main.cpp test.a  会发现报错 /tmp/ccJjiCoS.o: In function main: main.cpp:(.text0x7): undefined reference to test() collect2: ld returned 1 exit status  原因就是main.cpp为c代码调用了c语言库的函数因此链接的时候找不到解决方法即在main.cpp中把与c语言库test.a相关的头文件包含添加一个extern C的声明即可。例如修改后的main.cpp如下 g -o main main.cpp test.a  再编译会发现问题已经成功解决。 如果遇到问题和疑问就给我邮件或者评论吧觉得本文有用就点赞吧~:-D
http://www.sadfv.cn/news/280229/

相关文章:

  • 乐平市建设局网站wordpress短代码显示
  • 做展示型企业网站商城建设公司
  • 黔东南州住房和城乡建设局网站大华建设项目管理有限公司网站
  • 郑州网站营销汉狮住房和城乡建设部办公厅
  • 厦门自助建站陕西建工第三建设集团网站
  • 课程网站建设技术网页欣赏网站
  • 适合团购报名的网站开发北京国际建设集团网站
  • 建设网站需要从哪方面考虑企业精髓八个字
  • 外贸网站模板免费下载重庆市建设工程信息网官网入口网址
  • 长安公司网站制作如何做网站 百度经验
  • dw网站制作手机软件下载国内好的vps
  • 听小说的网站哪个好html教程网站
  • 中国联通网站备案管理系统广告公司名字大全20000个
  • 狂人站群系统做捕鱼网站电话
  • 做视频网站投入多少网页传奇游戏怎么注销
  • 定制型网站制作价格企业网址一般怎么设置
  • 做音乐网站的目地做医药中间体的外贸网站
  • 如何注销网站域名建立网站
  • wordpress国内视频网站吗网站设计的介绍模板
  • 网站安全保障机制如何做网站建设设计有哪些
  • 网站设计论坛外包网站问些什么问题
  • 东莞人才市场最新招聘信息廊坊seo计费管理
  • 汽车网站的建设方向大连网站快速建设推荐
  • 商务网站设计实训总结网站建设协议附件
  • wordpress改成自己网站wordpress帝国哪个安全
  • 网站换程序301自建网站平台可以实现哪些功能
  • 贵阳做网站公司seo优化网站推广全域营销获客公司
  • 怎么做家政的网站大学生网络营销策划方案书
  • 域名访问网站的知识做电子政务 网站
  • 合肥网站设计建设公司哈尔滨建设工程招标网