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

在编译gkEngine过程中,遇到的问题汇总贴。 #7

Open
GraphicGame opened this issue Mar 12, 2015 · 29 comments
Open

在编译gkEngine过程中,遇到的问题汇总贴。 #7

GraphicGame opened this issue Mar 12, 2015 · 29 comments
Labels

Comments

@GraphicGame
Copy link

首先小小的抱怨一下,gkEngine目前只提供VS2010的解决方案文件。
而现在早就全民普及VS2013了,没有VS2010的话,还得现场安装一个。
下面列一下我在编译时遇到过的两个问题:

  1. 因为某些工程的字节编码问题,当const wchar_t[] 往 const char * 转的时候,会导致一个编译错误,需要把工程设置成多字节编码。
  2. 编译时出现如下的链接错误:【LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt】,可以参考 http://blog.csdn.net/junjiehe/article/details/16888197 这篇博客说的方法来解决。
@gameknife
Copy link
Owner

windows平台我本已经取消多字节编码了... 统一使用utf16, 在ios和android使用的是utf8. 多字节问题很大,建议直接不用。
你说的编译问题可能是因为换了版本,我近期搞一个VS2013来看下。

@gameknife
Copy link
Owner

@GraphicGame
你遇到的问题是否_T("Glow"),那个地方貌似是最后一版我修改ios遗留的错误,将_T去掉即可。
我正在修缮android版本,所以暂时没有提交修改...

@GraphicGame
Copy link
Author

对,是那个 _T("Glow") 的地方有错误。

@caiyongnjupt
Copy link

您好,有些问题想问下。

  1. 在运行脚本 init_engine_res.bat, hand_make_resource.bat 等脚本的出错,原因是bat脚本中使用了中文 注释或者变量之类。
  2. 之前在论坛上问过,如何切换 dx9 引擎和 opengl 引擎的
    然后回答是: 修改 exec/configs/startup.cfg
    我查了下,我没有生成 exec/configs/ ,配置文件是在 tools 下
    gkEngine-master\exec\tools\default_cfg\startup.cfg
    修改了 exec\tools\default_cfg\startup.cfg ,但是 修改后内容没有生效。
  3. 编译过程中有一个 2>LINK : fatal error LNK1104: 无法打开文件“ToolkitPro1501vc100UD.lib” 错误
    这个是否正常?
  4. 但是最终,gkLauncher.exe 可以编译成功,但是运行的时候 没有资源,只有界面。
    应该是资源路径不对,请问下,资源加载路径一般是放在哪里?
  5. 看了下代码,
    gkEngine-master\code\engine\gkGameFramework\source\gkGameFramework.cpp (1 hit)
    Line 148: gkIniParser startupFile( _T("config/startup.cfg") );

gkStdString cfgfile = gkGetExecRootDir() + _T("media/config/startup.cfg");

这个 root 一般是哪里呢?

谢谢!

@gameknife
Copy link
Owner

@caiyongnjupt

  1. 这个问题接到多次报告,下一个push解决
  2. 修改exec/configs/startup.cfg,须生成方可执行配置
  3. 你使用develop配置不会遇到这个问题,同时debug config我已经取消gkstudio编译,下一个push解决
  4. 问题就在于你没有exec/configs/startup.cfg
  5. Root就是 exec/

感谢关注,我近期一直在搞android版本编译,因此部分问题一直没修,下一次push即可使用了。

@caiyongnjupt
Copy link

您好,编译成功,在运行的时候 发生如下错误。
模型无法加载,没有显示。

下面文件没有自动生成
exec/configs/startup.cfg
Copyright (C) Microsoft Corporation 2002-2009. All rights reserved.

F:\code20\gkEngine-master\exec\engine\shaders\d3d9\hwcode\post_msaa.fx(200,13):
warning X3578: 'DX9_SMAAResolveVS': Top-level output parameter 'offset' not comp
letely initialized

compilation succeeded; see F:\code20\gkEngine-master\exec\engine\shaders\d3d9\sh
adercache\[email protected]
[Error] Loading File engine/shaders/d3d9/shadercache/ksshadowstencilgen@0x800000
00.o Failed.
[Error] Loading File media/engine/shaders/d3d9/shadercache/ksshadowstencilgen@0x
80000000.o Failed.
[Warning] gkShader::Shader[ksshadowstencilgen] binary not exist.
Microsoft (R) Direct3D Shader Compiler 9.29.952.3111
Copyright (C) Microsoft Corporation 2002-2009. All rights reserved.

compilation succeeded; see F:\code20\gkEngine-master\exec\engine\shaders\d3d9\sh
adercache\[email protected]
[Error] Loading File engine/shaders/d3d9/shadercache/ksshadowstencilgen@0x000000
00.o Failed.

请问如何解决?
估计是路径问题。

@gameknife
Copy link
Owner

@caiyongnjupt
你放出的这段log,是系统在生成不存在的shadercache,重新生成的过程的log,是正常的。
至于模型无法加载,请给出进一步的问题描述,以方便定位。

@shanysheng
Copy link

编译错误,只要安装2010的serverpack1就好了

@gameknife
Copy link
Owner

@GraphicGame 的问题请参见这篇wiki,安装一个vc100便可省去安装vs2010的过程。

@caiyongnjupt 的问题应该是由于CR/LF和LF换行符混乱导致的cfg文件加载错误。目前已经于 @8eefde3a8dcfb0e3c8fbe2f84cb53d3f7d6465cd 修复,合并至master。checkout最新的master即可修复。

最后,暂时不关闭这个issue,等待提问。

@wubugui
Copy link

wubugui commented Apr 7, 2015

你好!我在运行的时候遇到一些问题,麻烦你解答一下:
编译在2013下不升级程序的时候编译通过了,但是运行的时候在我的电脑上出现了以下问题:

  • 配置hand_make_env.bat的时候出现找不到adreno_tga2atc_media.bat,但是依然编译过了。
  • 加载的时候出现了[Error]loading lib [null] failed我不知道这个有没有影响。
  • 然后是_gamedll = gkGameDemo_的加载,断言失败gk_vector3.h 116 this->IsValid()
    log如下:
……
ObjMeshFileLoader::Mesh Created.
MeshLoaded closing file...
GLESMesh vertexbuffer created.
GLESMesh indexbuffer created.
GLESMesh subset 2, vert 2669, tri 1609
GLESMesh loaded.
ObjMeshFileLoader::Mesh Created.
MeshLoaded closing file...
GLESMesh vertexbuffer created.
GLESMesh indexbuffer created.
GLESMesh subset 5, vert 6428, tri 4930
GLESMesh loaded.
F:\ccnet\build\bob_2013_2_5_Anarchy_Inst\Source\Common/Base/Container/Array/hkAr
ray.inl(21): [0x264718F3] Assert: i >= 0 && i < m_size
  • _gamedll = TestCases_可以被加载,但是所有选项在加载时都会失败,除了第一个加载角色。其中多数会出现上面一样的断言失败。

我的机器是:

windows8 64bit
显卡AMDHD7730M 
驱动信息:
Driver Packaging Version    14.501.1003-141120a-178000C
Catalyst Version    14.12 AMD Catalyst Omega Software
Provider    Advanced Micro Devices, Inc.
2D Driver Version   8.01.01.1443
2D Driver File Path /REGISTRY/MACHINE/SYSTEM/ControlSet001/Control/Class/{4d36e968-e325-11ce-bfc1-08002be10318}/0000
Direct3D Version    9.14.10.01080
OpenGL Version  6.14.10.13283
Mantle Driver Version   9.1.10.0045
Mantle API Version  98304
AMD Catalyst Control Center Version 2014.1120.2123.38423

所有的操作都是按照说明操作的,_startup.cfg_内容如下:

[launcher]
;gamedll = gkGameDemo
gamedll = TestCases

;renderer = gkRendererGLES2
renderer = gkRendererGL330
;renderer = gkRendererD3D9

physicsengine = gkHavok
;physicsengine = gkPhysX

width = 1280
height = 720

;stereodevice = gkOculus

DX的渲染器我无法成功加载可能是因为我的DXSDK安装失败了,ES没有尝试过。
另外,Intel的显卡均无法成功加载。

@lijipeng787
Copy link

您好,虽然adreno_tga2pvr_engine.bat这个脚本不存在,但是工程中的大部分项目VS2013可以通过编译。个别静态库使用vs2010生成,如果重新使用vs2013生成一遍这些库文件后应该可以生成一个vs2013的解决方案。

@BobLChen
Copy link

希望有空把项目的编译重新整理一下,我使用vs2010都无法编译通过。在osx上面最后一步你给的还是一个bat的文件。希望能够整理一下做一个vs2012或者更高的出来,然后把osx上面的也整理一下。能够成功在osx和ios上面编译出来。非常感谢。

@gameknife
Copy link
Owner

@BobLChen Hi, 我最近正在处理这件事,在new-dev-toochain分支上,正在开发。将sln拆分,布置osx的工具链。目前已经可以在osx完整的部署和打包了。正在做进一步完善工作,完成后会合并回主干。到时请帮忙测试和建议,万分感谢!!

@BobLChen
Copy link

@gameknife 等你整理完毕之后,我帮你测试一下。因为我现在主要的平台是osx,很希望能够将你的引擎以及studio跑起来,这样就极大的方便了我们的学习。非常感谢。

@gameknife
Copy link
Owner

@BobLChen Engine,包括工具链,目前已经可以完全独立的运行在OSX上了。但Studio在OSX上目前架构是跑不起来。底层是基于MFC开发的,不过目前开发量不太大。如果你有兴趣的话,可以考虑用跨平台界面库在OSX上搭起来,后期也可以平行上Windows平台。

@BobLChen
Copy link

@gameknife 好的。今天晚上我会下载来看一下。辛苦你了。

@BobLChen
Copy link

BobLChen commented Sep 4, 2015

@gameknife 仍然无法在osx上面编译通过。仍然希望你整理一下osx上面的流程。https://github.com/gameknife/gkEngine/wiki/iOS-OSX%E5%B9%B3%E5%8F%B0%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B%E6%8C%87%E5%8D%97 这个给出是需要在win下面搭建配置一下。但是对于osx来说不可能还需要去win下面搭建。所以希望你能够整理一个在干净的osx平台上面一步一步的搭建流程。

我执行的是你对应的sh文件,而且严格按照你的说明来做的。但是到了hand_make_env.sh的时候就缺库了。

~/Code/gkEngine$ sh hand_make_env.sh
not found sdk package [ freetype ]. go next
not found sdk package [ havoksdk ]. go next
not found sdk package [ misc ]. go next
not found sdk package [ oglsdk ]. go next
not found sdk package [ havoksdk_ios ]. go next

希望你能够给出这些库的链接,方便其他人在搭建的时候能够找到对应的。

最后就是编译,我先编译的ios_lib。ios_lib开始报错各种冲突。

我用的就是你的new-dev-toochain分支。麻烦你了。

@gameknife
Copy link
Owner

@BobLChen

I'm working on it...
工具链还在完善中,还没有合并回主干。
你应该能看到auto_make_env.sh,只要你有网络,这个脚本可以自动完成下载,解压,按平台准备资源,打包,编译的流程。目前windows上的auto_make_env.bat已经可以工作了。我正在完善macosx

@BobLChen
Copy link

BobLChen commented Sep 8, 2015

@gameknife 非常不好意思一直催着你,我太迫切的想把你这个跑起来了。看了一下非常值得深入学习,只是光看有很多地方没有跑起来再看那么明白。

@gameknife
Copy link
Owner

@BobLChen 以合并回主干,请从主干pull测试,直接在git根目录sh auto_make_env.sh。网络不好包没下全的话,多运行几次。

@BobLChen
Copy link

@gameknife 编译失败:
Ld /Users/neil/Code/gkEngine/exec/ios/Release-OSX/gkLauncherMac.app/Contents/MacOS/gkLauncherMac normal x86_64
cd /Users/neil/Code/gkEngine/code/engine
export MACOSX_DEPLOYMENT_TARGET=10.8
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk -L/Users/neil/Code/gkEngine/exec/ios/Release-OSX -L/Users/neil/Code/gkEngine/code/engine/../../exec/ios/Debug -L/Users/neil/Code/gkEngine/code/engine/../thirdparty/OGLSDK/lib -L/Users/neil/Code/gkEngine/code/engine/../../exec/ios/Debug-iphoneos -L/Users/neil/Code/gkEngine/code/engine/../../exec/ios/Debug-OSX -F/Users/neil/Code/gkEngine/exec/ios/Release-OSX -filelist /Users/neil/Code/gkEngine/intermediate/Release-OSX/gkLauncherMac.build/Objects-normal/x86_64/gkLauncherMac.LinkFileList -mmacosx-version-min=10.8 -ObjC -stdlib=libc++ -fobjc-link-runtime -lgkCore -lgkFont -lgkGameFramework -lgkGameObjectSystem -lgkInput -lgkRendererGL330 -lgkSystem -lTestCases -lglfw -framework OpenGL -framework AppKit -framework IOKit -framework CoreGraphics -Xlinker -dependency_info -Xlinker /Users/neil/Code/gkEngine/intermediate/Release-OSX/gkLauncherMac.build/Objects-normal/x86_64/gkLauncherMac_dependency_info.dat -o /Users/neil/Code/gkEngine/exec/ios/Release-OSX/gkLauncherMac.app/Contents/MacOS/gkLauncherMac
ld: warning: directory not found for option '-L/Users/neil/Code/gkEngine/code/engine/../../exec/ios/Debug'
ld: warning: directory not found for option '-L/Users/neil/Code/gkEngine/code/engine/../../exec/ios/Debug-iphoneos'
ld: warning: directory not found for option '-L/Users/neil/Code/gkEngine/code/engine/../../exec/ios/Debug-OSX'
ld: library not found for -lgkCore
clang: error: linker command failed with exit code 1 (use -v to see invocation)

** BUILD FAILED **

The following build commands failed:
Ld /Users/neil/Code/gkEngine/exec/ios/Release-OSX/gkLauncherMac.app/Contents/MacOS/gkLauncherMac normal x86_64
(1 failure)
The application cannot be opened because its executable is missing.

平台信息:
image

@BobLChen
Copy link

@gameknife 在xcode里面的报错信息如下:
ld: warning: directory not found for option '-L/Users/neil/Code/gkEngine/code/engine/../../exec/ios/Debug'
ld: warning: directory not found for option '-L/Users/neil/Code/gkEngine/code/engine/../../exec/ios/Debug-iphoneos'
ld: library not found for -lgkCore
clang: error: linker command failed with exit code 1 (use -v to see invocation)

没有找到lgkcore这个库。

@gameknife
Copy link
Owner

@BobLChen gkCore没有编译成功,前面的dependency是否没有下载完全?

@gameknife
Copy link
Owner

@BobLChen 貌似有一个地方忘了说,需要把xcode的location设置为legacy

@BobLChen
Copy link

@gameknife OK。可以了。非常感谢你。辛苦了。

@kernel-bug
Copy link

你好,
尝试在android上运行gkEngine, 报错:

11-29 18:52:11.039: E/AndroidRuntime(31794): FATAL EXCEPTION: main
11-29 18:52:11.039: E/AndroidRuntime(31794): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.kkstudio.gklauncher/android.app.NativeActivity}: java.lang.IllegalArgumentException: Unable to load native library: /mnt/asec/com.kkstudio.gklauncher-4/lib/libgkLauncherAndroid.so

检查过lib目录下,编译的so 都存在
shell@android:/mnt/asec/com.kkstudio.gklauncher-13/lib $ ls -l
ls -l
-rw-r--r-- system system 264772 2013-10-01 07:51 gdbserver
-rw-r--r-- system system 239012 2015-12-29 20:01 libTestCases.so
-rw-r--r-- system system 1169204 2015-12-29 21:01 libgkCore.so
-rw-r--r-- system system 771680 2015-12-29 21:01 libgkFont.so
-rw-r--r-- system system 472376 2015-12-29 21:01 libgkGameFramewor
-rw-r--r-- system system 537932 2015-12-29 21:01 libgkGameObjectSy
-rw-r--r-- system system 173260 2015-12-29 21:01 libgkInput.so
-rw-r--r-- system system 124176 2015-12-29 21:01 libgkLauncherAndr
-rw-r--r-- system system 1230512 2015-12-29 21:01 libgkRendererGLES
-rw-r--r-- system system 1230440 2015-12-29 21:01 libgkSystem.so

搜索网上,有说是so加载的问题,请问如何解决?

@kileyi
Copy link

kileyi commented Mar 19, 2016

你好,我在Win7 64位,vs2010环境下编译
加载TestCase_LoadScene场景时出错
[Warning] gkSceneBuilder::Loaded: [level/village/village.gks], use 4.15 seconds.

Compile Shader grass@0 success.
Compile Shader ksbase@32 success.
Compile Shader ksbase@0 success.
Compile Shader vegetation_autoexpand@0 success.
Compile Shader vegetation@0 success.
Compile Shader grass@0 success.
Compile Shader ksbase@32 success.
Compile Shader ksbase@0 success.
Compile Shader vegetation_autoexpand@0 success.
Compile Shader vegetation@0 success.
Compile Shader terrian@0 success.
Compile Shader grass@0 success.
Compile Shader ksbase@32 success.
Compile Shader ksbase@0 success.
F:\ccnet\build\bob_2013_2_5_Anarchy_Inst\Source\Common/Base/Container/Array/hkAr
ray.inl(21): [0x264718F3] Assert: i >= 0 && i < m_size

上面找不到这个F:\ccnet的东西,我并没有这个驱动目录,请问这是模型还是哪的位置......

@gameknife
Copy link
Owner

@kileyi
您好,这个是havok库内部的assert。理论错应该不在这里,上面的log也都正常,你能po一份更详细的Log么?

@VeryVery
Copy link

考虑过gkENGINE_VS2015.sln(即vs2015版本)的兼容吗?

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

No branches or pull requests

10 participants