今天想写一个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文件加到工程里面,将其加入到工程以后,终于编译通过了。此时刚好也下班了,嘿嘿,回家吃肉去!