Discussion:
[hercules-390] Build failed VS 2015 "entry point must be defined"
Joseph Reichman reichmanjoe@gmail.com [hercules-390]
2017-02-24 14:41:45 UTC
Permalink
Hi

I just ported over my code to my new 8 core machine

I used VS 2012 on my old laptop and am now using VS 2015

I am using the same solution and project files

And am getting the above error
Thanks
wrljet@gmail.com [hercules-390]
2017-02-25 17:38:32 UTC
Permalink
Can you post the Build Output window where you get that error?
reichmanjoe@gmail.com [hercules-390]
2017-02-26 00:04:05 UTC
Permalink
1>------ Rebuild All started: Project: Hercules_VS2012, Configuration: Debug x64 ------
1> Visual Studio 2013 detected
1> Hercules version number is \"3.12.0\" (3.12.0.0)
1> Makefile will assume VS12 or VS2013 Express (MSVC version 18)
1> Target processor type is AMD64
1>
1> VERSION = \"3.12.0\" (3.12.0.0)
1>
1> ZLIB support will not be generated
1> BZIP2 support will not be generated
1> PCRE support will not be generated
1> Microsoft (R) C/C++ Optimizing Compiler Version 18.00.40629 for x64
1> Copyright (C) Microsoft Corporation. All rights reserved.
1>
1> build_pch.c
1> Microsoft (R) Incremental Linker Version 12.00.40629.0
1> Copyright (C) Microsoft Corporation. All rights reserved.
1>
1> /out:build_pch.exe
1> /debug
1> msvc.debug.x86.obj\build_pch.obj
1>LINK : fatal error LNK1561: entry point must be defined
1>NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\x86_amd64\cl.EXE"' : return code '0x2'
1> Stop.
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.MakeFile.Targets(43,5): error MSB3073: The command "makefile.bat DEBUG-X64 makefile.msvc 32 -a" exited with code 2.
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========


Every time I upgrade my machine + software I get issues


I was quad core windows 8.1 VS 2012 pro. Hercules 3.12


Now 8 core windows 10 VS 2015 pro. Hercules 3.12


Thanks
wrljet@gmail.com [hercules-390]
2017-02-26 14:36:19 UTC
Permalink
Which source tree are you using?
The 3.12 I have doesn't have any VS SLN files in it.
reichmanjoe@gmail.com [hercules-390]
2017-02-26 17:54:14 UTC
Permalink
I am using the solution file from hyperion. I copied it and used it with spinhawk which I beleive is 3.12


it worked with VS 2012 pro and windows 8.1


I copied everything over to my new machine windows 10 VS 2015 pro\\
Maarten Hoes hoes.maarten@gmail.com [hercules-390]
2017-02-26 18:33:24 UTC
Permalink
Hi,
Post by ***@gmail.com [hercules-390]
I am using the solution file from hyperion. I copied it and used it with
spinhawk which I beleive is 3.12
Are you sure that copying a solution file from one codebase over to another
codebase should work ? I mean, I'm by no means an expert on this matter,
but my gut feeling here says there's going to be problems when you attempt
that, and any success in the past may be just pure luck, instead of a solid
means to build a codebase.


- Maarten
Maarten Hoes hoes.maarten@gmail.com [hercules-390]
2017-02-26 18:37:45 UTC
Permalink
Post by Maarten Hoes ***@gmail.com [hercules-390]
Hi,
Post by ***@gmail.com [hercules-390]
I am using the solution file from hyperion. I copied it and used it with
spinhawk which I beleive is 3.12
Are you sure that copying a solution file from one codebase over to
another codebase should work ? I mean, I'm by no means an expert on this
matter, but my gut feeling here says there's going to be problems when you
attempt that, and any success in the past may be just pure luck, instead of
a solid means to build a codebase.
- Maarten
PS: Can you build Hercules 3.12 when using the included build instructions
that state that you use 'nmake' ?


https://github.com/rbowler/spinhawk/blob/master/README.WIN32
https://github.com/rbowler/spinhawk/blob/master/README.WIN64


- Maarten
Joseph Reichman reichmanjoe@gmail.com [hercules-390]
2017-02-26 18:52:15 UTC
Permalink
I'll believe that's what I'm using the solution and or project is just telling Visual Studio that this is a makefile build
Hi,
Post by ***@gmail.com [hercules-390]
I am using the solution file from hyperion. I copied it and used it with spinhawk which I beleive is 3.12
Are you sure that copying a solution file from one codebase over to another codebase should work ? I mean, I'm by no means an expert on this matter, but my gut feeling here says there's going to be problems when you attempt that, and any success in the past may be just pure luck, instead of a solid means to build a codebase.
- Maarten
PS: Can you build Hercules 3.12 when using the included build instructions that state that you use 'nmake' ?
https://github.com/rbowler/spinhawk/blob/master/README.WIN32
https://github.com/rbowler/spinhawk/blob/master/README.WIN64
- Maarten
reichmanjoe@gmail.com [hercules-390]
2017-02-27 00:42:41 UTC
Permalink
Just followed and got the following


1>------ Rebuild All started: Project: Hercules_VS2012, Configuration: Debug x64 ------


1> Visual Studio 2013 detected


1> Hercules version number is \"3.12.0\" (3.12.0.0)


1> Makefile will assume VS12 or VS2013 Express (MSVC version 18)


1> Target processor type is AMD64


1>


1> VERSION = \"3.12.0\" (3.12.0.0)


1>


1> ZLIB support will not be generated


1> BZIP2 support will not be generated


1> PCRE support will not be generated


1> build_pch.c


1>d:\microsoft sdks\windows\v7.1\include\sal_supp.h(57): error C2220: warning treated as error - no 'object' file generated


1>d:\microsoft sdks\windows\v7.1\include\sal_supp.h(57): warning C4005: '__useHeader' : macro redefinition


1> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\sal.h(2886) : see previous definition of '__useHeader'


1>d:\microsoft sdks\windows\v7.1\include\specstrings_supp.h(77): warning C4005: '__on_failure' : macro redefinition


1> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\sal.h(2896) : see previous definition of '__on_failure'


1>NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\x86_amd64\cl.EXE"' : return code '0x2'


1> Stop.


1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.MakeFile.Targets(43,5): error MSB3073: The command "makefile.bat DEBUG-X64 makefile.msvc 32 -a" exited with code 2.


========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
Has any one build using VS 2015 pro
wrljet@gmail.com [hercules-390]
2017-02-27 15:00:28 UTC
Permalink
Joseph,

Your errors are for several reasons:

In 3.12, CONFIG.msvc is unaware of VS2015 and detects the compiler as being an older version.
In my case it thinks it is VS2012. In your case VS2013.
This comes from certain environment variables.

The makefile applies option /WX which treats all warnings as errors.
I get different warnings than you do, but the result is the same, it stops the build.

3.12 is simply is not set up to work as-is with VS2015.

If you still have your old VS version(s) I would run the build with that.
There's nothing I can see to be gained from a rebuild with VS2015.

Bill
reichmanjoe@gmail.com [hercules-390]
2017-02-27 15:14:19 UTC
Permalink
With my new machine I purchased VS 2015 pro ( If you can tell me how to downgrade I will)


I tried putting this #define in w32util.c




_WINSOCK_DEPRECATED_NO_WARNINGS




and in the preprocessor definition and I still get warnings below is there some .h I should put this in ?


Thanks




1>------ Rebuild All started: Project: Hercules_VS2012, Configuration: Debug x64 ------
1> Visual Studio 2013 detected
1> Hercules version number is \"3.12.0\" (3.12.0.0)
1> Makefile will assume VS12 or VS2013 Express (MSVC version 18)
1> Target processor type is AMD64
1>
1> VERSION = \"3.12.0\" (3.12.0.0)
1>
1> ZLIB support will not be generated
1> BZIP2 support will not be generated
1> PCRE support will not be generated
1> build_pch.c
1> dfp.c
1> ieee.c
1> pfpo.c
1> Microsoft (R) Windows (R) Resource Compiler Version 6.3.9600.17336
1>
1> Copyright (C) Microsoft Corporation. All rights reserved.
1>
1>
1> hsys.c
1> Creating library msvc.debug.AMD64.obj\hsys.lib and object msvc.debug.AMD64.obj\hsys.exp
1> getopt.c
1> codepage.c
1> fthreads.c
1> hdl.c
1> hostinfo.c
1> hscutl.c
1> hscutl2.c
1> logger.c
1> logmsg.c
1> memrchr.c
1> parser.c
1> pttrace.c
1> version.c
1> hsocket.c
1> w32util.c
1>w32util.c(1236): error C2220: warning treated as error - no 'object' file generated
1>w32util.c(1236): warning C4996: 'GetVersionExA': was declared deprecated
1> C:\Program Files (x86)\Windows Kits\8.1\include\um\sysinfoapi.h(433) : see declaration of 'GetVersionExA'
1>w32util.c(1557): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
1> C:\Program Files (x86)\Windows Kits\8.1\include\um\winsock2.h(2238) : see declaration of 'gethostbyname'
1>w32util.c(1620): warning C4996: 'WSASocketA': Use WSASocketW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
1> C:\Program Files (x86)\Windows Kits\8.1\include\um\winsock2.h(3457) : see declaration of 'WSASocketA'
1>w32util.c(1714): warning C4996: 'inet_addr': Use inet_pton() or InetPton() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
1> C:\Program Files (x86)\Windows Kits\8.1\include\um\winsock2.h(1850) : see declaration of 'inet_addr'
1>NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\x86_amd64\cl.EXE"' : return code '0x2'
1> Stop.
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.MakeFile.Targets(43,5): error MSB3073: The command "makefile.bat DEBUG-X64 makefile.msvc 32 -a" exited with code 2.
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
wrljet@gmail.com [hercules-390]
2017-02-27 17:39:08 UTC
Permalink
I made it work with the spinhawk tag 3.12. But it takes editing a few files.

But you are willing to get the latest code, which has only a few changes from the 3.12 tag,
it works much easier.

If you pull down the latest from here:
https://github.com/rbowler/spinhawk.git https://github.com/rbowler/spinhawk.git

Use a VS2015 x64 Native Tools command prompt.

Copy makefile.msvc to makefile

Copy in Win32.mak from your SDK.
On my system it it's found in C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include

Edit msvc.makefile.includes\HERC_FLAGS.msvc
Add /wd4091 to the cflags= line so it looks like this:

cflags = $(cflags) /WX /wd4091

Run nmake

For me then the build "just works".
Note, I didn't test Hercules beyond just firing it up.

-Bill

---In hercules-***@yahoogroups.com, <***@...> wrote :

With my new machine I purchased VS 2015 pro ( If you can tell me how to downgrade I will)


I tried putting this #define in w32util.c




_WINSOCK_DEPRECATED_NO_WARNINGS




and in the preprocessor definition and I still get warnings below is there some .h I should put this in ?


Thanks




1>------ Rebuild All started: Project: Hercules_VS2012, Configuration: Debug x64 ------
1> Visual Studio 2013 detected
1> Hercules version number is \"3.12.0\" (3.12.0.0)
1> Makefile will assume VS12 or VS2013 Express (MSVC version 18)
1> Target processor type is AMD64
1>
1> VERSION = \"3.12.0\" (3.12.0.0)
1>
1> ZLIB support will not be generated
1> BZIP2 support will not be generated
1> PCRE support will not be generated
1> build_pch.c
1> dfp.c
1> ieee.c
1> pfpo.c
1> Microsoft (R) Windows (R) Resource Compiler Version 6.3.9600.17336
1>
1> Copyright (C) Microsoft Corporation. All rights reserved.
1>
1>
1> hsys.c
1> Creating library msvc.debug.AMD64.obj\hsys.lib and object msvc.debug.AMD64.obj\hsys.exp
1> getopt.c
1> codepage.c
1> fthreads.c
1> hdl.c
1> hostinfo.c
1> hscutl.c
1> hscutl2.c
1> logger.c
1> logmsg.c
1> memrchr.c
1> parser.c
1> pttrace.c
1> version.c
1> hsocket.c
1> w32util.c
1>w32util.c(1236): error C2220: warning treated as error - no 'object' file generated
1>w32util.c(1236): warning C4996: 'GetVersionExA': was declared deprecated
1> C:\Program Files (x86)\Windows Kits\8.1\include\um\sysinfoapi.h(433) : see declaration of 'GetVersionExA'
1>w32util.c(1557): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
1> C:\Program Files (x86)\Windows Kits\8.1\include\um\winsock2.h(2238) : see declaration of 'gethostbyname'
1>w32util.c(1620): warning C4996: 'WSASocketA': Use WSASocketW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
1> C:\Program Files (x86)\Windows Kits\8.1\include\um\winsock2.h(3457) : see declaration of 'WSASocketA'
1>w32util.c(1714): warning C4996: 'inet_addr': Use inet_pton() or InetPton() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
1> C:\Program Files (x86)\Windows Kits\8.1\include\um\winsock2.h(1850) : see declaration of 'inet_addr'
1>NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\x86_amd64\cl.EXE"' : return code '0x2'
1> Stop.
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.MakeFile.Targets(43,5): error MSB3073: The command "makefile.bat DEBUG-X64 makefile.msvc 32 -a" exited with code 2.
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
reichmanjoe@gmail.com [hercules-390]
2017-02-27 23:44:29 UTC
Permalink
I changed WX to W1 so didn't treat warnings as errors


and got it to build cleanly don't like it but .... no choice

Joseph Reichman reichmanjoe@gmail.com [hercules-390]
2017-02-26 18:43:01 UTC
Permalink
The basic architecture is the same

But this I mean DLL's and .exe

The modules that made up certain DLL's

Haven't changes

For generating a build that is important

I believe the makefile which has the instructions how to build is the same

impl.c had been the hercules entry point for a long time
Hi,
Post by ***@gmail.com [hercules-390]
I am using the solution file from hyperion. I copied it and used it with spinhawk which I beleive is 3.12
Are you sure that copying a solution file from one codebase over to another codebase should work ? I mean, I'm by no means an expert on this matter, but my gut feeling here says there's going to be problems when you attempt that, and any success in the past may be just pure luck, instead of a solid means to build a codebase.
- Maarten
reichmanjoe@gmail.com [hercules-390]
2017-02-26 18:17:27 UTC
Permalink
I used the hyperion solution file and got spinhawk version working which is the same I believe as 3.12


I got it to work with VS 2012 pro


I copied everything over to my new machine windows 10 VS 2015 pro


should of worked
Loading...