PDA

View Full Version : CMAKE Error


Hockyplr
04-15-2014, 02:18 PM
I have been following the new guide on how to setup my own server. I am running into an error with cmake, and I am hoping I can receive some help here.

I plan on running this Everquest Server on a brand new install of Windows Server 2012 R2, everything has been updated.

I am running all software packages suggested within the guide, with the exception, I am not using Xampp, so a stand alone MYSQL server.

I receive the following error within Cmake when I attempt to compile:

Build FAILED.

"C:\EQ\Source\Build\CMakeFiles\2.8.12.2\CompilerIdC XX\CompilerIdCXX.vcxproj" (default target) (1) ->
(Link target) ->
LINK : fatal error LNK1181: cannot open input file 'gdi32.lib' [C:\EQ\Source\Build\CMakeFiles\2.8.12.2\CompilerIdC XX\CompilerIdCXX.vcxproj]

0 Warning(s)
1 Error(s)

Time Elapsed 00:00:00.47


Here is the error code I receive within the lower pane of Cmake:

CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:446 (execute_process):
execute_process given COMMAND argument with no value.
Call Stack (most recent call first):
C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:48 (CMAKE_DETERMINE_COMPILER_ID_VENDOR)
C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCCompiler.cmake:131 (CMAKE_DETERMINE_COMPILER_ID)
CMakeLists.txt:14 (PROJECT)


The C compiler identification is unknown
CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:446 (execute_process):
execute_process given COMMAND argument with no value.
Call Stack (most recent call first):
C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:48 (CMAKE_DETERMINE_COMPILER_ID_VENDOR)
C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCXXCompiler.cmake:127 (CMAKE_DETERMINE_COMPILER_ID)
CMakeLists.txt:14 (PROJECT)


The CXX compiler identification is unknown
Looking for include file stdint.h
CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeCInformation.cmake:37 (get_filename_component):
get_filename_component called with incorrect number of arguments
Call Stack (most recent call first):
CMakeLists.txt:3 (PROJECT)


CMake Error: Internal CMake error, TryCompile configure of cmake failed
Looking for include file stdint.h - not found
CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:108 (message):
Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
Call Stack (most recent call first):
C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:315 (_FPHSA_FAILURE_MESSAGE)
C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindZLIB.cmake:85 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:192 (FIND_PACKAGE)


Configuring incomplete, errors occurred!
See also "C:/EQ/Source/Build/CMakeFiles/CMakeOutput.log".
See also "C:/EQ/Source/Build/CMakeFiles/CMakeError.log".


Below I will paste the entire error log from cmake. I thank everyone who looks at this post and helps with a solution.
__________________________________________________ _____________


Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler:
Build flags:
Id flags:

The output was:
1
Microsoft (R) Build Engine version 12.0.21005.1
[Microsoft .NET Framework, version 4.0.30319.34014]
Copyright (C) Microsoft Corporation. All rights reserved.

Build started 4/15/2014 10:42:50 AM.
Project "C:\EQ\Source\Build\CMakeFiles\2.8.12.2\CompilerIdC \CompilerIdC.vcxproj" on node 1 (default targets).
PrepareForBuild:
Creating directory "Debug\".
Creating directory "Debug\CompilerIdC.tlog\".
InitializeBuildStatus:
Creating "Debug\CompilerIdC.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
ClCompile:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\CL.exe /c /nologo /W0 /WX- /Od /Oy- /D _MBCS /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Debug\\" /Fd"Debug\vc120.pdb" /Gd /TC /analyze- /errorReport:queue CMakeCCompilerId.c
CMakeCCompilerId.c
Link:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\link.exe /ERRORREPORT:QUEUE /OUT:".\CompilerIdC.exe" /INCREMENTAL:NO /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /PDB:".\CompilerIdC.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:".\CompilerIdC.lib" /MACHINE:X86 /SAFESEH Debug\CMakeCCompilerId.obj
LINK : fatal error LNK1181: cannot open input file 'gdi32.lib' [C:\EQ\Source\Build\CMakeFiles\2.8.12.2\CompilerIdC \CompilerIdC.vcxproj]
Done Building Project "C:\EQ\Source\Build\CMakeFiles\2.8.12.2\CompilerIdC \CompilerIdC.vcxproj" (default targets) -- FAILED.

Build FAILED.

"C:\EQ\Source\Build\CMakeFiles\2.8.12.2\CompilerIdC \CompilerIdC.vcxproj" (default target) (1) ->
(Link target) ->
LINK : fatal error LNK1181: cannot open input file 'gdi32.lib' [C:\EQ\Source\Build\CMakeFiles\2.8.12.2\CompilerIdC \CompilerIdC.vcxproj]

0 Warning(s)
1 Error(s)

Time Elapsed 00:00:00.45


Checking whether the C compiler is IAR using "" did not match "IAR .+ Compiler":
Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
Compiler:
Build flags:
Id flags:

The output was:
1
Microsoft (R) Build Engine version 12.0.21005.1
[Microsoft .NET Framework, version 4.0.30319.34014]
Copyright (C) Microsoft Corporation. All rights reserved.

Build started 4/15/2014 10:42:50 AM.
Project "C:\EQ\Source\Build\CMakeFiles\2.8.12.2\CompilerIdC XX\CompilerIdCXX.vcxproj" on node 1 (default targets).
PrepareForBuild:
Creating directory "Debug\".
Creating directory "Debug\CompilerIdCXX.tlog\".
InitializeBuildStatus:
Creating "Debug\CompilerIdCXX.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
ClCompile:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\CL.exe /c /nologo /W0 /WX- /Od /Oy- /D _MBCS /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Debug\\" /Fd"Debug\vc120.pdb" /Gd /TP /analyze- /errorReport:queue CMakeCXXCompilerId.cpp
CMakeCXXCompilerId.cpp
Link:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\link.exe /ERRORREPORT:QUEUE /OUT:".\CompilerIdCXX.exe" /INCREMENTAL:NO /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /PDB:".\CompilerIdCXX.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:".\CompilerIdCXX.lib" /MACHINE:X86 /SAFESEH Debug\CMakeCXXCompilerId.obj
LINK : fatal error LNK1181: cannot open input file 'gdi32.lib' [C:\EQ\Source\Build\CMakeFiles\2.8.12.2\CompilerIdC XX\CompilerIdCXX.vcxproj]
Done Building Project "C:\EQ\Source\Build\CMakeFiles\2.8.12.2\CompilerIdC XX\CompilerIdCXX.vcxproj" (default targets) -- FAILED.

Build FAILED.

"C:\EQ\Source\Build\CMakeFiles\2.8.12.2\CompilerIdC XX\CompilerIdCXX.vcxproj" (default target) (1) ->
(Link target) ->
LINK : fatal error LNK1181: cannot open input file 'gdi32.lib' [C:\EQ\Source\Build\CMakeFiles\2.8.12.2\CompilerIdC XX\CompilerIdCXX.vcxproj]

0 Warning(s)
1 Error(s)

Time Elapsed 00:00:00.47


Checking whether the CXX compiler is IAR using "" did not match "IAR .+ Compiler":
Determining if files stdint.h exist failed with the following output:

Source:
/* */
#include <stdint.h>


int main(){return 0;}

moofta
04-15-2014, 04:37 PM
Did you copy the dependencies in? It says zlib is missing. Other that, which flavour of visual studio 2012 was it that you installed? It's not finding the c++ libraries. (I'm no cmake expert though!)

Hockyplr
04-15-2014, 05:16 PM
Yes I have the dependencies folder created with the four files residing in said folder. My path is:

C:\EQ\Source\dependencies

With that folder are the following folders:


boost
luaj_x86
mysql_x86
zlib_x86.

I am using Visual Studio Express 2013, and selecting VS 12 within Cmake. The Cmake version I am using is the latest 2.8.12.2, and I even tried an older version of cmake, received same error.

Hockyplr
04-16-2014, 01:14 AM
As I have been looking into this, it seems that Cmake is NOT grabbing default locations and thus the compiler is failing. For example, can anyone tell me what location to point to for this:

CMAKE_LINKER

Maze_EQ
04-16-2014, 05:47 AM
did joo run as admin

Hockyplr
04-16-2014, 10:36 AM
Yes, as I am running actual server software, I am logged in as the administrator when doing all of these functions.

moofta
04-16-2014, 11:32 AM
1) try repairing your vs2013 installation, if that doesn't work:-
2) Try installing http://msdn.microsoft.com/en-US/windows/desktop/bg162891.aspx , or repair it if already installed. if that doesn't work:-
3) Open up the VS2013 developer command prompt (not the normal one) and then type

"set lib"

and post the contents here.

Hockyplr
04-16-2014, 08:53 PM
Moofta,

First let me thank you for the great guide to follow in learning to set up my own server. second, thank you for the continued support you give to us new people.

After installing the SDK, everything worked within Cmake without any errors. I am on to the next steps........

Hockyplr
04-16-2014, 09:39 PM
Ok I am using VS 2013 Express, per the guide, and when it opens the EQEmu.sln file, on the right side it says the file is incompatible with this version of VS.....

Ideas?

joligario
04-16-2014, 09:45 PM
With all your previous problems, I recommend deleting the build directory, clearing out the CMAKE cache, and starting the generate process over.

Hockyplr
04-17-2014, 12:09 AM
Joligario, thanks for the suggestion. I tried that twice, and still failed. Here is a link to a screen shot of VS 2013 and the incompatible portion:


http://prntscr.com/3aqlxh

Uleat
04-17-2014, 12:11 AM
Make sure that you select 'visual studio 12' for your compiler. I believe there are 3 versions listed (x64 and arm are the other two.)

You want the basic compiler, if you're building x86.

Hockyplr
04-17-2014, 12:42 AM
Uleat, Yes I did select the basic compiler of VS 12.

Really weird it says the wrong version....

Hockyplr
04-17-2014, 12:56 AM
Okay, deleted the Build directory, cleared the cache, even deleted all source files including Dependencies and re-downloaded them all. Screenshot one shows the configure up to LUA.

http://prntscr.com/3aqtmu

Screenshot 2 shows the LUA

http://prntscr.com/3aqu3m

Screenshot 3 shows the generate:

http://prntscr.com/3aqu92


Thanks again everyone. I WILL get this done!

Uleat
04-17-2014, 12:56 AM
I spoke to one of the dev's about the 'unknown version' problem and they are aware of it.

It doesn't, however, keep you from generating a solution and opening it in vs 2013.


If you are (still) getting fatal errors, there's definitely something else going on...


EDIT: I just saw your screenshots... go back and redo cmake..this time, click configure twice. There was a red line indicating that a configuration option had not been set.

Hockyplr
04-17-2014, 01:09 AM
The file I am clicking on is the sixth (6) FILE down, not including the folders.

http://prntscr.com/3aqvrd

When I right click on it, here is the menu I get:

http://prntscr.com/3aqwcj

Hockyplr
04-17-2014, 01:15 AM
Okay, I highlighted the Build_All, then went under the Build tab at the top and selected build solution. After several seconds and a lot of "warnings" and commands being issued, the output screen provided the following:

http://prntscr.com/3aqx2p

2 successful and 0 errors....much lower than the 12 that the document said...however, is this a true successful build?

Uleat
04-17-2014, 01:23 AM
Right-click 'Solution' and click clear.

Then right-click 'Solution' and click build.

See where that gets ya.

Hockyplr
04-17-2014, 01:37 AM
It said skipped, 2 files up-to-date. I think it is working. I moved on, but the very next step:

e) Copying the executables to your server directory:-


1.First go into the C:\EQ\Source\Build\Bin\Debug folder and copy at least the following files:

shared_memory.exe, eqlaunch.exe, queryserv.exe, ucs.exe, world.exe and zone.exe to your C:\EQ\EQEmuServer folder.

None of the executable files were in that location.

Uleat
04-17-2014, 02:58 AM
Do you have an older version of VS installed as well?

Uleat
04-17-2014, 04:42 AM
I caught the error you posted -
Checking whether the CXX compiler is IAR using "" did not match "IAR .+ Compiler"
- in a few other posts.

One solution was to uninstall vs 2013 and install 2012.


(Some searching led to a page where that reference, 'IAR,' was related to 'ARM.' Could be an internal cmake issue...)


EDIT: I ran the circle on this one... Looking around on the web seems to point back to the installation of the SDK.
Moofta's post with the link to the SDK download is probably your best bet. You can try searching for vs2012/vs2013 and
console application, gdi32.lib to see what others have done to fix this.

If you do manage to get it working without down-grading, please post back your results..since, others have had this
particular issue.

moofta
04-17-2014, 08:54 AM
Try using "Express 2013 for Windows Desktop" rather than "Express 2013 for Windows".

I just did a fresh install on Windows 2012 R2, installed ActivePerl, CMake and "Visual Studio Express 2013 for Windows Desktop" and I could get it to compile.

From the VS screenshots it thinks your project files are incompatible. I suspect that the "Visual Studio Express 2013 for Windows" version is more strict about the types of projects it uses, and CMAKE doesn't conform to that. (I am clutching at straws though)

When I wrote that part of the guide I didn't really think the exact VS2013 type would make a difference but maybe it does. I'm going to change it anyway since the desktop version will apply to more people (e.g. Windows 7 users).

Hockyplr
04-17-2014, 12:06 PM
I went in and uninstalled VS 2013 for Windows. I downloaded and installed VS 2013 for Windows Desktop.

Deleted my old build folder. Re-compiled in cmake, without issues. Ran VS received NO INCOMPATIBLE error! Was able to right click on Build_ALL and select build. The build this time took much longer and ended with 12 successful and zero errors.

So thus far I am now successful. I would recommend maybe adding a section to the guide to insure that the person installing also installs the SDK, as I did not have that and cmake did not work until I installed that yesterday, so maybe a good idea to add it to the guide.

Also, I found this typo in the guide Moofta:

c) Download Visual Studio Express 2013
•Download Visual Studio Express 2013 For Windows Desktop (note: there is a "Visual Studio Express 2013 For Windows Desktop" do not use it as I *think* it won't work) and put it in the C:\EQ\Installs directory. Download the installer by clicking on 'Install Now'. Note this one is only a simple web installer package. It will download more when you run it.

Maybe change to:

c) Download Visual Studio Express 2013 For Windows Desktop
•Download Visual Studio Express 2013 For Windows Desktop (note: there is a "Visual Studio Express 2013 For Windows" do not use it as I *think* it won't work) and put it in the C:\EQ\Installs directory. Download the installer by clicking on 'Install Now'. Note this one is only a simple web installer package. It will download more when you run it.

I will continue to provide updates as I finish this using Moofta's guide. With all the help I am receiving, and a few tweaks here and there, we will be able to finalize that moofta's guide is working and updated.

Hockyplr
04-17-2014, 12:14 PM
Another possible typo Moofta:

3.Finally, unless you have installed the full version of Lua 5.1 on your machine (there is no reason to do so in order to get EqEmu working), copy lua51.dll from the C:\EQ\Source\dependencies\luaj_x86

When I go to that location there is no such file. I do find the file within the \bin folder. Is this correct? Looks like the full path needs to be changed to:

C:\EQ\Source\dependencies\luaj_x86\bin

Hockyplr
04-17-2014, 02:46 PM
With everything built and configured, here is what I receive in my error log:

Failed to connect to database: Error: #2003: Can't connect to MySQL server on 'localhost'

moofta
04-17-2014, 04:03 PM
wiki updated to fix the inaccuracies you mentioned- thanks.

The MySql error is probably the credentials in your eqemuconfig file not matching the correct credentials (or differing database name), or of course if the mysql server isn't running ;)

Hockyplr
04-17-2014, 11:29 PM
Here is the snippet of code I have in my EQEmu.xml file:

<database>
<host>localhost</host>
<port>3306</port>
<username>root</username>
<password>Password</password>
<db>peq</db>
</database>

Granted that is not my actual password, but my database name is indeed peq, per Moofta's guide. Mysql is running, because from command prompt I can do the following:

> cd c:\EQ\SQL

> mysql -uroot -pPassword

I then get the MySQL lines, and if I follow it with:

> use peq

The database changes. Anyone have an idea why when I run the start.bat file, the server cannot connect to localhost?

Uleat
04-18-2014, 12:39 AM
try changing localhost to 127.0.0.1

I know it's silly..especially if you have it defined in your system... But, that does fix it for some people.

Also, ensure that your login.ini is setup properly.

Hockyplr
04-18-2014, 12:58 AM
Uleat,

I tried the change as you stated, and it did not work. I did change even the login.ini file. Now I have changed the two back...but here is the login.ini file just in case I missed something:

[database]
host = 127.0.0.1
port = 3306
db = peq
user = root
password = Password
subsystem = MySQL

[options]
unregistered_allowed = TRUE
reject_duplicate_servers = FALSE
trace = TRUE
world_trace = FALSE
dump_packets_in = FALSE
dump_packets_out = FALSE
listen_port = 5998
local_network = 192.168.1.69

[security]
plugin = EQEmuAuthCrypto
mode = 5

[Titanium]
port = 5998
opcodes = login_opcodes.conf

[SoD]
port = 5999
opcodes = login_opcodes_sod.conf

[schema]
account_table = tblLoginServerAccounts
world_registration_table = tblWorldServerRegistration
world_admin_registration_table = tblServerAdminRegistration
world_server_type_table = tblServerListType

Uleat
04-18-2014, 04:27 AM
I don't think this affects MySQL login..but, you will need to change this:

[options]
unregistered_allowed = TRUE
reject_duplicate_servers = FALSE
trace = TRUE
world_trace = FALSE
dump_packets_in = FALSE
dump_packets_out = FALSE
listen_port = 5998
local_network = 192.168.1.

When you had them changed, did you get the same 2003 error? Or were you just not able to connect to the game server?


EDIT: If you don't mind, post your eqemu_config.xml file too.

Hockyplr
04-18-2014, 11:39 AM
The following is my eqemu_config.xml:

<?xml version="1.0"?>
<server>
<world>
<shortname>setme</shortname>
<longname>I Forgot To Edit My Config</longname>

<!-- Only specify these two if you really think you need to. (read: You don't) -->
<!-- <address>some.server.com</address> -->
<!-- <localaddress>192.168.0.5</localaddress> -->

<!-- Loginserver information. Defaults shown -->
<loginserver>
<host>eqemulator.net</host>
<port>5998</port>
<account></account>
<password></password>
</loginserver>

<!-- Server status. Default is unlocked -->
<!--<locked/>-->
<!-- <unlocked/> -->

<!-- Sets the ip/port for the tcp connections. Both zones and console (if enabled). Defaults are shown -->
<tcp ip="127.0.0.1" port="9000" telnet="disable"/>

<!-- Sets the shared key used by zone/launcher to connect to world -->
<key>some long random string</key>

<!-- Enable and set the port for the HTTP service. Defaults are shown -->
<http port="9080" enabled="false" mimefile="mime.types" />
</world>

<!-- Chatserver (channels) information. Defaults shown -->
<chatserver>
<host>channels.eqemulator.net</host>
<port>7778</port>
</chatserver>

<!-- Mailserver (in-game mail) information. Defaults shown -->
<mailserver>
<host>channels.eqemulator.net</host>
<port>7778</port>
</mailserver>

<zones>
<defaultstatus>20</defaultstatus>

<!-- Sets port range for world to use to auto configure zones -->
<ports low="7000" high="7100"/>
</zones>

<!-- Database configuration, replaces db.ini. Defaults shown -->
<database>
<host>127.0.0.1</host>
<port>3306</port>
<username>root</username>
<password>Password</password>
<db>peq</db>
</database>


<!-- Launcher Configuration -->
<launcher>
<!-- <logprefix>logs/zone-</logprefix> -->
<!-- <logsuffix>.log</logsuffix> -->
<!-- <exe>zone.exe or ./zone</exe> -->
<!-- <timers restart="10000" reterminate="10000"> -->
</launcher>

<!-- File locations. Defaults shown -->
<files>
<!-- <spells>spells_us.txt</spells> -->
<!-- <opcodes>opcodes.conf</opcodes> -->
<!-- <logsettings>log.ini</logsettings> -->
<!-- <eqtime>eqtime.cfg</eqtime> -->
</files>
<!-- Directory locations. Defaults shown -->
<directories>
<!-- <maps>Maps</maps> -->
<!-- <quests>quests</quests> -->
<!-- <plugins>plugins</plugins> -->
</directories>
</server>


The following in my login.ini file:

[database]
host = 127.0.0.1
port = 3306
db = peq
user = root
password = Password
subsystem = MySQL

[options]
unregistered_allowed = TRUE
reject_duplicate_servers = FALSE
trace = TRUE
world_trace = FALSE
dump_packets_in = FALSE
dump_packets_out = FALSE
listen_port = 5998
local_network = 192.168.1.

[security]
plugin = EQEmuAuthCrypto
mode = 5

[Titanium]
port = 5998
opcodes = login_opcodes.conf

[SoD]
port = 5999
opcodes = login_opcodes_sod.conf

[schema]
account_table = tblLoginServerAccounts
world_registration_table = tblWorldServerRegistration
world_admin_registration_table = tblServerAdminRegistration
world_server_type_table = tblServerListType

joligario
04-18-2014, 11:43 AM
You have your world trying to connect to eqemu login server (with old address) instead of using your own login server.

Hockyplr
04-18-2014, 11:51 AM
Okay, so should host be set to the ip of the server I am running this on? 192.168.1.69? With the port of 3389 (my default port)?

And the username and password should be?

Hockyplr
04-18-2014, 01:10 PM
Okay, getting closer. Here is the current eqemu_config file and the following error log:

<?xml version="1.0"?>
<server>
<world>
<shortname>setme</shortname>
<longname>I Forgot To Edit My Config</longname>

<!-- Only specify these two if you really think you need to. (read: You don't) -->
<!-- <address>some.server.com</address> -->
<!-- <localaddress>192.168.0.5</localaddress> -->

<!-- Loginserver information. Defaults shown -->
<loginserver>
<host>login.eqemulator.net</host>
<port>5998</port>
<account>DejaEQ</account>
<password>PASSWORD</password>
</loginserver>

<!-- Server status. Default is unlocked -->
<!--<locked/>-->
<!-- <unlocked/> -->

<!-- Sets the ip/port for the tcp connections. Both zones and console (if enabled). Defaults are shown -->
<tcp ip="127.0.0.1" port="9000" telnet="disable"/>

<!-- Sets the shared key used by zone/launcher to connect to world -->
<key>some long random string</key>

<!-- Enable and set the port for the HTTP service. Defaults are shown -->
<http port="9080" enabled="false" mimefile="mime.types" />
</world>

<!-- Chatserver (channels) information. Defaults shown -->
<chatserver>
<host>channels.eqemulator.net</host>
<port>7778</port>
</chatserver>

<!-- Mailserver (in-game mail) information. Defaults shown -->
<mailserver>
<host>channels.eqemulator.net</host>
<port>7778</port>
</mailserver>

<zones>
<defaultstatus>20</defaultstatus>

<!-- Sets port range for world to use to auto configure zones -->
<ports low="7000" high="7100"/>
</zones>

<!-- Database configuration, replaces db.ini. Defaults shown -->
<database>
<host>127.0.0.1</host>
<port>3306</port>
<username>root</username>
<password>PASSWORD</password>
<db>peq</db>
</database>

<qsdatabase>
<host>127.0.0.1</host>
<port>3306</port>
<username>eq</username>
<password>eq</password>
<db>eq</db>
</qsdatabase>

<!-- Launcher Configuration -->
<launcher>
<!-- <logprefix>logs/zone-</logprefix> -->
<!-- <logsuffix>.log</logsuffix> -->
<!-- <exe>zone.exe or ./zone</exe> -->
<!-- <timers restart="10000" reterminate="10000"> -->
</launcher>

<!-- File locations. Defaults shown -->
<files>
<!-- <spells>spells_us.txt</spells> -->
<!-- <opcodes>opcodes.conf</opcodes> -->
<!-- <logsettings>log.ini</logsettings> -->
<!-- <eqtime>eqtime.cfg</eqtime> -->
</files>
<!-- Directory locations. Defaults shown -->
<directories>
<!-- <maps>Maps</maps> -->
<!-- <quests>quests</quests> -->
<!-- <plugins>plugins</plugins> -->
</directories>
</server>


This is what the World log says:

---------------------------------------------
[04.18. - 10:09:29] Starting Log: logs/eqemu_error_world_3544.log
[04.18. - 10:09:29] Error Loading Items: EQEmu Exception (Shared Memory) in ..\..\common\memory_mapped_file.cpp at line (112): Could not open the file to find the existing file size.
[04.18. - 10:09:29] Error in AdventureManager:::LoadAdventures: SELECT id, zone, zone_version, is_hard, min_level, max_level, type, type_data, type_count, assa_x, assa_y, assa_z, assa_h, text, duration, zone_in_time, win_points, lose_points, theme, zone_in_zone_id, zone_in_x, zone_in_y, zone_in_object_id, dest_x, dest_y, dest_z, dest_h, graveyard_zone_id, graveyard_x, graveyard_y, graveyard_z, graveyard_radius FROM adventure_template (#1146: Table 'peq.adventure_template' doesn't exist)
[04.18. - 10:09:29] Error in AdventureManager:::LoadAdventureEntries: SELECT id, template_id FROM adventure_template_entry (#1146: Table 'peq.adventure_template_entry' doesn't exist)

lerxst2112
04-18-2014, 02:31 PM
Make sure you have a directory named shared in your server directory.
Make sure you are running shared_memory.exe and waiting for it to finish before running the rest of the server programs.

Hockyplr
04-18-2014, 03:24 PM
I did have a folder called "shared" inside the EQEmuServer folder. There was no Shared_memory file, that was outside the shared per the guides instructions. I left it outside but made a copy of the file inside the shared folder.


I now get the following from the world log:

---------------------------------------------
[04.18. - 12:22:14] Starting Log: logs/eqemu_error_world_0956.log
[04.18. - 12:22:14] Error Loading Items: EQEmu Exception (Shared Memory) in ..\..\common\memory_mapped_file.cpp at line (112): Could not open the file to find the existing file size.
[04.18. - 12:22:14] Error in AdventureManager:::LoadAdventures: SELECT id, zone, zone_version, is_hard, min_level, max_level, type, type_data, type_count, assa_x, assa_y, assa_z, assa_h, text, duration, zone_in_time, win_points, lose_points, theme, zone_in_zone_id, zone_in_x, zone_in_y, zone_in_object_id, dest_x, dest_y, dest_z, dest_h, graveyard_zone_id, graveyard_x, graveyard_y, graveyard_z, graveyard_radius FROM adventure_template (#1146: Table 'peq.adventure_template' doesn't exist)
[04.18. - 12:22:14] Error in AdventureManager:::LoadAdventureEntries: SELECT id, template_id FROM adventure_template_entry (#1146: Table 'peq.adventure_template_entry' doesn't exist)

lerxst2112
04-18-2014, 06:28 PM
You need to have shared_memory.exe in your server folder. You should have copied it along with the rest of the server executables you built.

You need to have a directory named shared in your server folder.

You need to run shared_memory.exe as part of your startup batch file, it will read the database and put some files in the shared directory. You will never need to put any files in the shared directory yourself.

The error you are getting is because you have not run the shared_memory.exe file, or you did and it failed. Looking at the other errors you posted I'd guess it failed since it looks like your database is not correct.

Hockyplr
04-18-2014, 07:13 PM
Thanks Lerxst. Okay the shared folder was in place, the .exe was in the server folder. So it must be a database issue. It says the Adventure Table doesn't exist. I installed the latest PEQdatabase.

I did not do any updating of database according to guide. Do I need to apply every Source update located in C:\EQ\Source\utils\sql\svn folder. I could not find a revision number on any of the database files, as they were all like PEQbeta04152014.sql Etc.

So I did not apply any of the updates at all in that folder. Maybe that is why there are tables missing....

lerxst2112
04-19-2014, 12:27 AM
Perhaps you should explain how you created your database in the first place. Did you start with the peq daily dump?

Uleat
04-19-2014, 12:27 AM
The db dumps are usually created early morning..so, typically anything posted to the code repo after the new dump is up will need to be sourced in.

The older 'required' code from the git folder 'should' already be in the daily dump. There can at times be exceptions or delays, however.


SIDENOTE: Hockyplr, I think that I misread your original cmake screenshots. Unless you are hosting your own login server, disregard the login.ini file
information. I went back last night and discovered that I mistook the 'client files' checkbox for the 'login server' one.
Everything else should apply, though.

Hockyplr
04-19-2014, 01:09 AM
For the Database install, I of course installed MySQL. Then per the guide:


Currently you must download the latest database from the following location (you will get redirected to a Google Drive folder):

?
1

http://peqtgc.com/releases

The filename will be something like:-

?
1

peqbeta_{Date_and_Time}.tar.gz

where {Date_and_Time} is actually the time it was generated e.g 2014-04-01-02:01

Next, go to the folder C:\EQ\SQL and unzip the file.
If double-clicking on peqbeta_{Date_and_Time}.tar.gz does not launch 7-zip or your preferred unzipper, you may need to launch 7-manually (possibly using 'Run as Administrator' and go into the settings/options and tell it to associate it with .gz files).
Once you have the file opened with 7-zip, select extract and extract it to C:\EQ\SQL. It may just unzip to a file called peqbeta_{Date_and_Time}.tar. You then have to unzip *that* file, and inside are the files you really want.
There will be approx 11 files, one of which will be Readme.txt. I would advise reading that text! It will be updated whenever the database is (unlike this guide), and may have information that override what you read here. Copied from the current Readme


Then I did the following steps:

c) Now it is time to create the database.

The following assumes you have used my tip to rename the files to something easier to type!
Launch a command prompt window and navigate to your C:\EQ\SQL folder by typing:

cd c:\EQ\SQL


Then enter mysql -uroot -ppassword where password is the password you chose when installing MySQL.
You should be presented with a mysql> prompt. If you do not, and it says it cannot find "mysql" please refer to (link) Adding MySql to your "Path"
Assuming you are now logged in, you can now create your database.

Type:
create database peq;
and press enter.


The following ensures any commands you use next will apply to this new database:-

Type:
use peq;
and press enter.


Note: Now that the database is created anytime you need to login to MySQL in the future, you can do it with a single line command:


mysql -uroot -pyourpassword peq

Type:
source peqbeta.sql;
and press enter.

This may take a while to complete, depending on how powerful your PC is.

When the mysql> prompt returns:

Type:
source player_tables.sql;
and press enter.


Finally, type
exit
and press enter to return to the command prompt.

That was the process I used

lerxst2112
04-19-2014, 01:50 AM
Were there any errors with that process? Have you looked at the database in something like HeidiSQL to see if it is actually there and there are tables in it?

If you don't have any other utility you can try 'mysql -uroot -ppassword' and then at the prompt type 'show tables in peq' and see what it lists.

Hockyplr
04-19-2014, 02:16 AM
No errors. Here is a screen shot, 174 tables...

http://prntscr.com/3be35s

In fact, I deleted the entire database, and reinstalled the latest git clone, which was dated 4/18/14. I have NOT applied anything from the SVN or Git folder....do I need to with such a new database?

lerxst2112
04-19-2014, 04:22 AM
Dunno, the error you most recently posted says that two of the tables in your screenshot don't exist and that there's no shared memory items file to load. Not applying required updates would be a different set of errors, but if you're using the daily dump I don't think you need any.

Hockyplr
04-22-2014, 12:17 PM
Okay, I am really close now. I am only getting the following error:

[04.22. - 09:03:30] Starting Log: logs/eqemu_error_queryserv_0552.log
[04.22. - 09:03:30] Failed to connect to database: Error: #2003: Can't connect to MySQL server on 'localhost' (0)

I find this interesting because every other application is able to connect to the database.

Below is my Config File:

<?xml version="1.0"?>
<server>
<world>
<shortname>DEQ</shortname>
<longname>Deja EQ</longname>

<!-- Only specify these two if you really think you need to. (read: You don't) -->
<!-- <address>some.server.com</address> -->
<!-- <localaddress>192.168.0.5</localaddress> -->

<!-- Loginserver information. Defaults shown -->
<loginserver>
<host>login.eqemulator.net</host>
<port>5998</port>
<account>DejaEQ</account>
<password>PASSWORD</password>
</loginserver>

<!-- Server status. Default is unlocked -->
<!--<locked/>-->
<!-- <unlocked/> -->

<!-- Sets the ip/port for the tcp connections. Both zones and console (if enabled). Defaults are shown -->
<tcp ip="127.0.0.1" port="9000" telnet="disable"/>

<!-- Sets the shared key used by zone/launcher to connect to world -->
<key>some long random string</key>

<!-- Enable and set the port for the HTTP service. Defaults are shown -->
<http port="9080" enabled="false" mimefile="mime.types" />
</world>

<!-- Chatserver (channels) information. Defaults shown -->
<chatserver>
<host>channels.eqemulator.net</host>
<port>7778</port>
</chatserver>

<!-- Mailserver (in-game mail) information. Defaults shown -->
<mailserver>
<host>channels.eqemulator.net</host>
<port>7778</port>
</mailserver>

<zones>
<defaultstatus>20</defaultstatus>

<!-- Sets port range for world to use to auto configure zones -->
<ports low="7000" high="7100"/>
</zones>

<!-- Database configuration, replaces db.ini. Defaults shown -->
<database>
<host>127.0.0.1</host>
<port>3306</port>
<username>root</username>
<password>PASSWORD</password>
<db>peq</db>
</database>


<!-- Launcher Configuration -->
<launcher>
<!-- <logprefix>logs/zone-</logprefix> -->
<!-- <logsuffix>.log</logsuffix> -->
<!-- <exe>zone.exe or ./zone</exe> -->
<!-- <timers restart="10000" reterminate="10000"> -->
</launcher>

<!-- File locations. Defaults shown -->
<files>
<!-- <spells>spells_us.txt</spells> -->
<!-- <opcodes>opcodes.conf</opcodes> -->
<!-- <logsettings>log.ini</logsettings> -->
<!-- <eqtime>eqtime.cfg</eqtime> -->
</files>
<!-- Directory locations. Defaults shown -->
<directories>
<!-- <maps>Maps</maps> -->
<!-- <quests>quests</quests> -->
<!-- <plugins>plugins</plugins> -->
</directories>
</server>


The reason my Shared_memory was not starting is the .bat file never started that file due to a typo:

@echo off
shared_memory.exe
start world.exe
echo waiting for the world to finish before starting zone...
ping -n 10 127.0.0.1 > nul
start queryserv.exe
start ucs.exe
start eqlaunch.exe zone
exit

Simply placing start in front of that ran everything until the current error...

Were close guys, thanks for the forth coming help!

Uleat
04-22-2014, 01:13 PM
Add this to your config file:

<database>
<host>127.0.0.1</host>
<port>3306</port>
<username>root</username>
<password>PASSWORD</password>
<db>peq</db>
</database>

<qsdatabase>
<host>127.0.0.1</host>
<port>3306</port>
<username>root</username>
<password>PASSWORD</password>
<db>peq</db>
</qsdatabase>

These are designed to be modular..even though, most people will only use one machine to run everything.


EDIT: I thought that had been added to the repo config file..

Hockyplr
04-22-2014, 01:17 PM
It has been Uleat, I inadvertently deleted that section. I went back and looked in the original file...DOH!

Thanks man, I'll put this back in and try again!

Hockyplr
04-22-2014, 01:53 PM
I believe the server is running, however, I do not see it on the server list here...

I have the following windows open, which others seem to have open as well, and they have the same issue. I did remove my account and password from the top of the config file, but my server still doesn't display. Ideas?

Image of the four windows open and "running" :

http://prntscr.com/3cew5r

My current Config file for reference:

<?xml version="1.0"?>
<server>
<world>
<shortname>DEQ</shortname>
<longname>Deja EQ</longname>

<!-- Only specify these two if you really think you need to. (read: You don't) -->
<!-- <address>some.server.com</address> -->
<!-- <localaddress>192.168.0.5</localaddress> -->

<!-- Loginserver information. Defaults shown -->
<loginserver>
<host>login.eqemulator.net</host>
<port>5998</port>
<account></account>
<password></password>
</loginserver>

<!-- Server status. Default is unlocked -->
<!--<locked/>-->
<!-- <unlocked/> -->

<!-- Sets the ip/port for the tcp connections. Both zones and console (if enabled). Defaults are shown -->
<tcp ip="127.0.0.1" port="9000" telnet="disable"/>

<!-- Sets the shared key used by zone/launcher to connect to world -->
<key>some long random string</key>

<!-- Enable and set the port for the HTTP service. Defaults are shown -->
<http port="9080" enabled="false" mimefile="mime.types" />
</world>

<!-- Chatserver (channels) information. Defaults shown -->
<chatserver>
<host>channels.eqemulator.net</host>
<port>7778</port>
</chatserver>

<!-- Mailserver (in-game mail) information. Defaults shown -->
<mailserver>
<host>channels.eqemulator.net</host>
<port>7778</port>
</mailserver>

<zones>
<defaultstatus>20</defaultstatus>

<!-- Sets port range for world to use to auto configure zones -->
<ports low="7000" high="7100"/>
</zones>

<!-- Database configuration, replaces db.ini. Defaults shown -->
<database>
<host>127.0.0.1</host>
<port>3306</port>
<username>root</username>
<password>PASSWORD</password>
<db>peq</db>
</database>


<qsdatabase>
<host>127.0.0.1</host>
<port>3306</port>
<username>root</username>
<password>PASSWORD</password>
<db>peq</db>
</qsdatabase>

<!-- Launcher Configuration -->
<launcher>
<!-- <logprefix>logs/zone-</logprefix> -->
<!-- <logsuffix>.log</logsuffix> -->
<!-- <exe>zone.exe or ./zone</exe> -->
<!-- <timers restart="10000" reterminate="10000"> -->
</launcher>

<!-- File locations. Defaults shown -->
<files>
<!-- <spells>spells_us.txt</spells> -->
<!-- <opcodes>opcodes.conf</opcodes> -->
<!-- <logsettings>log.ini</logsettings> -->
<!-- <eqtime>eqtime.cfg</eqtime> -->
</files>
<!-- Directory locations. Defaults shown -->
<directories>
<!-- <maps>Maps</maps> -->
<!-- <quests>quests</quests> -->
<!-- <plugins>plugins</plugins> -->
</directories>
</server>

lerxst2112
04-22-2014, 03:01 PM
If you go back and look at the last config you posted before this you were using the wrong database name in the qsdatabase block.

Hockyplr
04-22-2014, 03:53 PM
Okay no errors within the log files. I have the four windows, previously screen shot posted. the following are my MOST RECENT Config and Login files. I still do not see the server on the public list.

Config File:
<?xml version="1.0"?>
<server>
<world>
<shortname>DEQ</shortname>
<longname>Deja EQ</longname>

<!-- Only specify these two if you really think you need to. (read: You don't) -->
<!-- <address>some.server.com</address> -->
<!-- <localaddress>192.168.0.5</localaddress> -->

<!-- Loginserver information. Defaults shown -->
<loginserver>
<host>login.eqemulator.net</host>
<port>5998</port>
<account></account>
<password></password>
</loginserver>

<!-- Server status. Default is unlocked -->
<!--<locked/>-->
<!-- <unlocked/> -->

<!-- Sets the ip/port for the tcp connections. Both zones and console (if enabled). Defaults are shown -->
<tcp ip="127.0.0.1" port="9000" telnet="disable"/>

<!-- Sets the shared key used by zone/launcher to connect to world -->
<key>some long random string</key>

<!-- Enable and set the port for the HTTP service. Defaults are shown -->
<http port="9080" enabled="false" mimefile="mime.types" />
</world>

<!-- Chatserver (channels) information. Defaults shown -->
<chatserver>
<host>channels.eqemulator.net</host>
<port>7778</port>
</chatserver>

<!-- Mailserver (in-game mail) information. Defaults shown -->
<mailserver>
<host>channels.eqemulator.net</host>
<port>7778</port>
</mailserver>

<zones>
<defaultstatus>20</defaultstatus>

<!-- Sets port range for world to use to auto configure zones -->
<ports low="7000" high="7100"/>
</zones>

<!-- Database configuration, replaces db.ini. Defaults shown -->
<database>
<host>127.0.0.1</host>
<port>3306</port>
<username>root</username>
<password>PASSWORD</password>
<db>peq</db>
</database>


<qsdatabase>
<host>127.0.0.1</host>
<port>3306</port>
<username>root</username>
<password>PASSWORD</password>
<db>peq</db>
</qsdatabase>

<!-- Launcher Configuration -->
<launcher>
<!-- <logprefix>logs/zone-</logprefix> -->
<!-- <logsuffix>.log</logsuffix> -->
<!-- <exe>zone.exe or ./zone</exe> -->
<!-- <timers restart="10000" reterminate="10000"> -->
</launcher>

<!-- File locations. Defaults shown -->
<files>
<!-- <spells>spells_us.txt</spells> -->
<!-- <opcodes>opcodes.conf</opcodes> -->
<!-- <logsettings>log.ini</logsettings> -->
<!-- <eqtime>eqtime.cfg</eqtime> -->
</files>
<!-- Directory locations. Defaults shown -->
<directories>
<!-- <maps>Maps</maps> -->
<!-- <quests>quests</quests> -->
<!-- <plugins>plugins</plugins> -->
</directories>
</server>


Login.ini :
[database]
host = localhost
port = 3306
db = peq
user = root
password = MYPASSWORD
subsystem = MySQL

[options]
unregistered_allowed = TRUE
reject_duplicate_servers = FALSE
trace = TRUE
world_trace = FALSE
dump_packets_in = FALSE
dump_packets_out = FALSE
listen_port = 5998
local_network = 192.168.1.

[security]
plugin = EQEmuAuthCrypto
mode = 5

[Titanium]
port = 5998
opcodes = login_opcodes.conf

[SoD]
port = 5999
opcodes = login_opcodes_sod.conf

[schema]
account_table = tblLoginServerAccounts
world_registration_table = tblWorldServerRegistration
world_admin_registration_table = tblServerAdminRegistration
world_server_type_table = tblServerListType

Hockyplr
04-23-2014, 01:24 AM
Here is a screenshot of the log folder, does this help at all? I don't see anything about a login server...


http://prntscr.com/3cl0yi

ckkyckky
04-24-2014, 02:24 PM
what?system wrong

lerxst2112
04-24-2014, 04:24 PM
Here is a screenshot of the log folder, does this help at all? I don't see anything about a login server...

Not surprising since you're not running your own login server. Any information about why world could not connect to the public login server would be in the world logs.