关于引入libpng.lib的一些问题

来源:互联网 发布:拜月教主 知乎 编辑:程序博客网 时间:2024/06/03 01:41

今天想写一个Image类之后用opengl 2d刷出来。


在引入lib的时候总是出问题,现总结一下lib引入的一些问题:


以VC2008 express为例:

1.首先要在property->linker->input 里将additional dependencies的libpng.lib引入进去。

2.之后再property->c/c++->general里的additional include directories里面的头文件引入进去。这里有个小技巧,当点开这个界面的时候

 点macros会显示当前的一些环境变量。

将头文件引入进去。

3.之后再property->linker->advanced里面将Import Library添成$(TargetDir)$(TargetName).lib如图:



4.之后问题就来了,因为我参考的工程是这么写的我一直在想这个targetDir究竟是哪里,经过看macro才发现这个是debug目录,可是libpng.lib在debug目录里根本没有,我就在想为啥人家的项目会在build的时候将这这个lib文件拷过去呢?

经过围观才发现原来在property->build events-> pre-linker event->command Line里面会有一部拷贝的命令如图


拷贝命令为:

if not exist "$(OutDir)" mkdir "$(OutDir)"
xcopy /Y /Q "$(SolutionDir)Win32\lib\libraries\*.*" "$(OutDir)"


好了,加上这个,那个文件算是拷贝进去了,可以我又遇到了这个问题unresolved external symbol _inflateInit_ referenced in function _png_create_read_struct_2

后来搜索才得出,原来是我没有将libpng.lib文件加到工程里面,将其加入到工程以后,终于编译通过了。此时刚好也下班了,嘿嘿,回家吃肉去!


原创粉丝点击