Posted on 2008-04-29 18:32
RichardHe 閱讀(1166)
評論(5) 編輯 收藏 引用
昨天問題是由于把OgreMian目錄下的所有頭文件和CPP文件都包含進來.而有一些是不用的,我花了幾十分鐘對比
Ogrenew下OgreMain下的所有文件,大慨有4至5個頭文件以及所對應的CPP文件是多余的,而編譯程序的時候就是因為
這幾個多余的文件而導致鏈接出錯.
編譯的時候遇到
下面的問題
1>正在執行生成后事件...
1>命令語法不正確。
1>Project : error PRJ0019: 工具從"正在執行生成后事件..."
查閱OGRE的論壇發現和生成后事件有關,因為拷貝命令沒有執行成功
在項目的屬性->生成事件->生成后事件->命令行里有如下命令
copy $(OutDir)\$(TargetFileName) $(OGRE_HOME)\bin\$(ConfigurationName)
改成
copy "$(OutDir)\$(TargetFileName)" "$(OGRE_HOME)\bin\$(ConfigurationName)"
就可以了
編譯就通過了,不過我自己直接不用也是可以編譯通過的
如果要是自己創建OGRE工程文件,可以參考它的源碼工程設置.不過要把Dependencies目錄下的LIB文件設置為附加庫目錄
也就是"項目屬性"=>配置屬性=>鏈接器=>常規=>附加庫目錄=>..\..\Dependencies\LIB\Debug(或Release)
這樣就可以鏈接成功.
Demo_Instancing.exe
Demo_Ocean.exe
Demo_Crowd.exe
Demo_Compositor.exe
Demo_Gui.exe
"項目屬性"=>配置屬性=>鏈接器=>高級=>導入庫的..\..\..\..\lib\$(ProjectName)_d.lib
設置為你的輸入目錄,或者置空也可以;如果置空,則$(ProjectName)_d.lib生成在輸出目錄下
突然有一個想法,不論是CEGUI還是OGRE中,不是都有一個叫root的根結點嗎?如果要是把這個根結點刪掉,
那么掛在這個根結點下面的窗口或者是其它的東西是否也會自動刪除呢?如果不會?又如何實現這個功能?