创建Cocos2d-x的VC工程使用vs的模版创建完成后不能直接运行,需要将头文件、依存库(lib) 和 动态链接库的路径重新在工程的属性页里设置,很不方便。
参考了 子龙山人的方法:Cocos2d-x建工程时避免copy文件夹和库,感觉还是不太方便。方法一受cocos的sdk路径限制,方法二会使所有的vc工程都带有这个属性。
现附上自己的研究方法:
一:首先添加修改系统环境变量:
添加 COCOS2DX_HOME=F:\SDK\cocos2d-x
F:\SDK\cocos2d-x 是我自己的cocos2d-x目录,大家根据需要修改。
修改 Path,在后面加上 F:\SDK\cocos2d-x\Debug.win32 就是执行F:\SDK\cocos2d-x\build-win32.bat 所生成的库目录,主要是为了dll,因为搜索DLL的路径顺序是
1:被装载程序包的执行目录。
2:当前目录。如果与执行目录不同的话。
3:Windows系统目录
4:Windows目录。
5:Path中的目录。
所以我加在了Path里。
二:修改vc模板生成脚本default.js(F:\SDK\cocos2d-x\template\msvc\CCAppWiz.win32\Scripts\1033)
修改函数AddConfigurations(红体字为修改部分)
// Additional Inlcude Directories
var strAddIncludeDir = '.;.\\win32;.\\Classes';
strAddIncludeDir += ';$(COCOS2DX_HOME)\\cocos2dx;$(COCOS2DX_HOME)\\cocos2dx\\include';
strAddIncludeDir += ';$(COCOS2DX_HOME)\\cocos2dx\\platform';
strAddIncludeDir += ';$(COCOS2DX_HOME)\\cocos2dx\\platform\\third_party\\win32\\OGLES';
if (wizard.FindSymbol('CC_USE_BOX2D')) {
strAddIncludeDir += ';$(COCOS2DX_HOME)\\';
}
if (wizard.FindSymbol('CC_USE_CHIPMUNK')) {
strAddIncludeDir += ';$(COCOS2DX_HOME)\\chipmunk\\include\\chipmunk';
}
if (wizard.FindSymbol('CC_USE_COCOS_DENSHION_SIMPLE_AUDIO_ENGINE')) {
strAddIncludeDir += ';$(COCOS2DX_HOME)\\CocosDenshion\\Include';
}
if (wizard.FindSymbol('CC_USE_LUA')) {
strAddIncludeDir += ';$(COCOS2DX_HOME)\\lua\\cocos2dx_support';
strAddIncludeDir += ';$(COCOS2DX_HOME)\\lua\\tolua';
strAddIncludeDir += ';$(COCOS2DX_HOME)\\lua\\lua';
}
//LinkTool.AdditionalLibraryDirectories = '$(OutDir)';
if (bDebug)
LinkTool.AdditionalLibraryDirectories = '$(COCOS2DX_HOME)\\Debug.win32';
else
LinkTool.AdditionalLibraryDirectories = '$(COCOS2DX_HOME)\\Release.win32';
LinkTool.AdditionalDependencies = strAddDepends;
保存,执行InstallWizardForVS2010.js生成新脚本。注销重新登录,使环境变量生效。
打开VC,重新生成工程,指定任意目录,运行,OK。
PS:
不会脚本的人伤不起呀,郁闷,一开始看不太懂,慢慢摸索。本来是想都通过修改生成模板的脚本来实现这一目的,但是实在无能为力。dll只能通过前面提到的5个路径里找。
查资料用到的网址:
http://msdn.microsoft.com/zh-cn/library/ms168475%28v=vs.110%29
http://msdn.microsoft.com/zh-cn/library/ee855621%28v=vs.110%29
http://blog.sina.com.cn/s/blog_6a0cb8bc0100uzhn.html
http://blog.csdn.net/clamreason/article/details/6971868
http://topic.csdn.net/u/20071129/16/45f6d430-5cf5-49d0-bd0a-1b9580234ec6.html
http://www.cnblogs.com/andyque/archive/2011/09/27/2192920.html