CMAKE Error
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\CompilerId CXX\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\CompilerId C\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\CompilerId C\CompilerIdC.vcxproj" (default targets) -- FAILED. Build FAILED. "C:\EQ\Source\Build\CMakeFiles\2.8.12.2\CompilerId C\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\CompilerId CXX\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\CompilerId CXX\CompilerIdCXX.vcxproj" (default targets) -- FAILED. Build FAILED. "C:\EQ\Source\Build\CMakeFiles\2.8.12.2\CompilerId CXX\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;} |
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!)
|
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. |
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 |
did joo run as admin
|
Yes, as I am running actual server software, I am logged in as the administrator when doing all of these functions.
|
1) try repairing your vs2013 installation, if that doesn't work:-
2) Try installing http://msdn.microsoft.com/en-US/wind.../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. |
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........ |
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? |
With all your previous problems, I recommend deleting the build directory, clearing out the CMAKE cache, and starting the generate process over.
|
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 |
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. |
Uleat, Yes I did select the basic compiler of VS 12.
Really weird it says the wrong version.... |
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! |
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. |
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 |
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? |
Right-click 'Solution' and click clear.
Then right-click 'Solution' and click build. See where that gets ya. |
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. |
Do you have an older version of VS installed as well?
|
I caught the error you posted -
Code:
Checking whether the CXX compiler is IAR using "" did not match "IAR .+ Compiler" 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. |
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). |
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. |
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 |
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' |
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 ;) |
Here is the snippet of code I have in my EQEmu.xml file:
Code:
<database> Code:
> cd c:\EQ\SQL Code:
> use peq |
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. |
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: Code:
[database] |
I don't think this affects MySQL login..but, you will need to change this:
Code:
[options] EDIT: If you don't mind, post your eqemu_config.xml file too. |
The following is my eqemu_config.xml:
Code:
<?xml version="1.0"?> Code:
[database] |
You have your world trying to connect to eqemu login server (with old address) instead of using your own login server.
|
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? |
Okay, getting closer. Here is the current eqemu_config file and the following error log:
Code:
<?xml version="1.0"?> Code:
--------------------------------------------- |
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. |
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: Code:
--------------------------------------------- |
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. |
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.... |
Perhaps you should explain how you created your database in the first place. Did you start with the peq daily dump?
|
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. |
All times are GMT -4. The time now is 06:42 PM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.