忘掉-lpthread而用-pthread
这两天在ubuntu下编译libcurl库,使用libcurl.a老是出现莫名其妙的情况,一连搞了两天总算明白了。请看:
用以下指令时出现错误:gcc -lpthread -L../lib -lcurl -o simple simple.c
当用以下指令时也出现链接错误:gcc -o simple simple.c -lpthread -L../lib -lcurl
这使我百思不得其解,找度娘帮忙也没有找到合适的答案。后来我发现吧-lpthread 放到后面就正常了。
gcc -o simple simple.c -L../lib -lcurl -lpthread
由于开发任务紧,又加上马上到饭点了,我就不想深究了,以后再说。
可是等我吃完饭回来,我就发现无论我把pthread放在前面还是后面,又都可以编译了,神奇吧?!
诸位看上面的命令发现和最开始的有什么不同吗?哈哈,原来是我敲键盘的时候不小心把 -lpthread搞成-pthread了,
这竟然歪打正着了。看了simple_孙和skylinethj的文章,我终于明白了,这真是一个血的教训啊!
参考 https://www.cnblogs.com/suntp/p/6473751.html
http://blog.****.net/skylinethj/article/details/38569243