• 3888阅读
  • 4回复

编译开源飞信出现的问题 [复制链接]

上一主题 下一主题
离线matrix_ming
 

只看楼主 倒序阅读 楼主  发表于: 2013-08-07
设置了     LIBS += -lcurl    \             -lssl     \             -ldl      \             -lcrypto  \             $$PWD/libfetion/lib/libfetion_32.a编译还是出现以下问题/usr/bin/ld: ./libfetion/lib/libfetion_32.a(ftion_login_help.o): undefined reference to symbol 'BN_new' /usr/bin/ld: note: 'BN_new' is defined in DSO /usr/lib/libcrypto.so so try adding it to the linker command line /usr/lib/libcrypto.so: could not read symbols: 无效的操作 collect2: 错误:ld 返回 1 make: *** [linux-fetion] 错误 1


后来在  $$PWD/libfetion/lib/libfetion_32.a后面再加上   -lcurl   -lcrypto  就能正确编译了


想知道,为什么会这样呀,想知道qt的库连接
离线matrix_ming

只看该作者 1楼 发表于: 2013-08-18
没有人回答这个问题嘛
离线dbzhang800

只看该作者 2楼 发表于: 2013-08-19
这似乎和Qt没什么关系,况且链接器已经明确告诉你了问题,你的疑问具体是什么呢。
离线matrix_ming

只看该作者 3楼 发表于: 2013-08-19
回 2楼(dbzhang800) 的帖子
想知道为什么后面还要增加  -lcurl   -lcrypto ?前面不是已经有了嘛
离线dbzhang800

只看该作者 4楼 发表于: 2013-08-20
这种问题,网上有大量的讨论的:

http://stackoverflow.com/questions/3363398/g-linking-order-dependency-when-linking-c-code-to-c-code
http://stackoverflow.com/questions/45135/linker-order-gcc
...


-- 题外 --

【在Qt世界中,编译静态库时,一般都会让qmake生成一个额外的 .prl 文件,用于记录该静态库依赖的其他库,同样,使用该静态库时,让qmake去解析该 .prl 文件。这样可以避免这种链接问题】

快速回复
限100 字节
 
上一个 下一个