Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

windows下使用静态库的方式编译无法通过 #153

Open
wukongzhikong opened this issue Jul 28, 2018 · 7 comments
Open

windows下使用静态库的方式编译无法通过 #153

wukongzhikong opened this issue Jul 28, 2018 · 7 comments

Comments

@wukongzhikong
Copy link

wukongzhikong commented Jul 28, 2018

你好!
我将c-sdk-for-windows的master分支下的include和lib目录下的文件分别添加到项目的includepath和链接path中(qt项目),编译报错“error: LNK2019: 无法解析的外部符号 Qiniu_Client_Cleanup”,查看Qiniu_Client_Cleanup发现是通过“QINIU_DLLAPI extern void”这种方式声明的。随后我尝试在项目输出目录下加入master分支下bin目录下的dll文件,依然报该错误。再次尝试将dll文件添加到链接path中,编译时出现错误:“error: LNK1107: 文件无效或损坏: 无法在 0x2C8 处读取”。
另外还有一个问题,我看现在项目中有在linux和mac上编译的文档,能否提供一份在windows手动编译的文档呢?

@jemygraw
Copy link
Contributor

@wukongzhikong
Copy link
Author

@jemygraw 你好,我尝试了这个方法,可以成功编译得到qiniu.lib,但集成到项目中依然会有“无法解析的外部符号 ”这样的错误。

@jemygraw
Copy link
Contributor

集成到外部项目需要把lib和dll文件都引用看看。

@wukongzhikong
Copy link
Author

@jemygraw 你好,在项目中将qiniu.dll添加到链接路径中,编译时会报错:“error: LNK1107: 文件无效或损坏: 无法在 0x2C8 处读取”。按理说只需将头文件和静态库文件分别添加到include路径和link路径,就可以编译了呀。。dll文件放到项目输出目录,程序运行时才会用到,不是这样吗。。

@jemygraw
Copy link
Contributor

jemygraw commented Aug 1, 2018

你注意下编译的时候选择的CPU类型,和你集成到项目中的CPU类型是否一致。

@jemygraw
Copy link
Contributor

jemygraw commented Aug 1, 2018

另外程序链接的时候需要dll库,而不仅仅是运行的时候。

@wukongzhikong
Copy link
Author

@jemygraw 谢谢,成功集成了,之前是因为编译得到的lib是32位的,而项目target是Win64,我将项目target修改为x86之后就可以了。额外想问一下,能不能也提供64位的build选项呢?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants