Fixed Build fails for v2020-05-09 when importing brl.httprequest (msvc)

wick

Member
3rd Party Module Dev
Tutorial Author
Patreon Bronze
Joined
Jul 17, 2017
Messages
69
Thanks for the quick fix with the debug mode problem! I ran into another issue when trying to update my actual games to the newest cerberus. One of my libraries bulk-imports brl and it fails with a bunch of "unresolved external symbol" errors that I don't know what to do with.

I can trigger it by adding Import brl or Import brl.httprequest to the top of the bouncyaliens example.

Console:
Code:
  C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\bin\HostX86\x86\link.exe /ERRORREPORT:QUEUE /OUT:"C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\Release\CerberusGame.exe" /INCREMENTAL:NO /NOLOGO /LIBPATH:../openal/libs/Win32 opengl32.lib glu32.lib openal32.lib Ws2_32.lib 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:"C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\Release\CerberusGame.pdb" /SUBSYSTEM:WINDOWS /OPT:REF /OPT:ICF /LTCG:incremental /TLBID:1 /ENTRY:"mainCRTStartup" /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\Release\CerberusGame.lib" /MACHINE:X86 /SAFESEH "C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\build\Release\CerberusGame.res"
  "C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\build\Release\context.obj"
  "C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\build\Release\egl_context.obj"
  "C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\build\Release\init.obj"
  "C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\build\Release\input.obj"
  "C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\build\Release\monitor.obj"
  "C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\build\Release\osmesa_context.obj"
  "C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\build\Release\vulkan.obj"
  "C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\build\Release\wgl_context.obj"
  "C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\build\Release\win32_init.obj"
  "C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\build\Release\win32_joystick.obj"
  "C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\build\Release\win32_monitor.obj"
  "C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\build\Release\win32_time.obj"
  "C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\build\Release\win32_thread.obj"
  "C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\build\Release\win32_window.obj"
  "C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\build\Release\window.obj"
  "C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\build\Release\main.obj"
  "C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\build\Release\stb_image.obj"
  "C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\build\Release\stb_vorbis.obj"
main.obj : error LNK2001: unresolved external symbol __imp__curl_easy_perform [C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\CerberusGame.vcxproj]
main.obj : error LNK2001: unresolved external symbol __imp__curl_easy_getinfo [C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\CerberusGame.vcxproj]
main.obj : error LNK2001: unresolved external symbol __imp__curl_global_init [C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\CerberusGame.vcxproj]
main.obj : error LNK2001: unresolved external symbol __imp__curl_easy_init [C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\CerberusGame.vcxproj]
main.obj : error LNK2001: unresolved external symbol __imp__curl_slist_append [C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\CerberusGame.vcxproj]
main.obj : error LNK2001: unresolved external symbol __imp__curl_slist_free_all [C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\CerberusGame.vcxproj]
main.obj : error LNK2001: unresolved external symbol __imp__curl_easy_cleanup [C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\CerberusGame.vcxproj]
main.obj : error LNK2001: unresolved external symbol __imp__curl_easy_setopt [C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\CerberusGame.vcxproj]
C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\Release\CerberusGame.exe : fatal error LNK1120: 8 unresolved externals [C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\CerberusGame.vcxproj]
Done Building Project "C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\CerberusGame.vcxproj" (default targets) -- FAILED.
Done Building Project "C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\CerberusGame.sln" (default targets) -- FAILED.

Build FAILED.

"C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\CerberusGame.sln" (default target) (1) ->
"C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\CerberusGame.vcxproj" (default target) (2) ->
(Link target) ->
  main.obj : error LNK2001: unresolved external symbol __imp__curl_easy_perform [C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\CerberusGame.vcxproj]
  main.obj : error LNK2001: unresolved external symbol __imp__curl_easy_getinfo [C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\CerberusGame.vcxproj]
  main.obj : error LNK2001: unresolved external symbol __imp__curl_global_init [C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\CerberusGame.vcxproj]
  main.obj : error LNK2001: unresolved external symbol __imp__curl_easy_init [C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\CerberusGame.vcxproj]
  main.obj : error LNK2001: unresolved external symbol __imp__curl_slist_append [C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\CerberusGame.vcxproj]
  main.obj : error LNK2001: unresolved external symbol __imp__curl_slist_free_all [C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\CerberusGame.vcxproj]
  main.obj : error LNK2001: unresolved external symbol __imp__curl_easy_cleanup [C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\CerberusGame.vcxproj]
  main.obj : error LNK2001: unresolved external symbol __imp__curl_easy_setopt [C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\CerberusGame.vcxproj]
  C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\Release\CerberusGame.exe : fatal error LNK1120: 8 unresolved externals [C:\Cerberus\examples\mojo2\bouncyaliens\bouncyaliens.buildv2020-05-09\glfw3\msvc\CerberusGame.vcxproj]

    0 Warning(s)
    9 Error(s)

Time Elapsed 00:00:05.42
TRANS FAILED: Error executing '"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe" /p:Configuration=Release', return code=1
Done.
 

MikeHart

Administrator
Joined
Jun 19, 2017
Messages
2,815
Mmh, so the 2019 version worked? I have to check that.

Edit: V2019-10-13 didn't work, V2019-05-05 does also not work. Let's look into this...

Edit2: Had to correct myself. @wick, did it ever work for you in MSVC? If yes, which version of CX and MSVC?
 
Last edited:

wick

Member
3rd Party Module Dev
Tutorial Author
Patreon Bronze
Joined
Jul 17, 2017
Messages
69
What is MSVC // how do I check its version?

Importing brl for the bouncyaliens test works for me on Cerberus version v2018-04-21.
 

MikeHart

Administrator
Joined
Jun 19, 2017
Messages
2,815
I was now able to build static libs of Curl for VS2017. Next week i will try that i can make it work with it.
 

wick

Member
3rd Party Module Dev
Tutorial Author
Patreon Bronze
Joined
Jul 17, 2017
Messages
69
Thank you for taking it on! I really appreciate it.
 

MikeHart

Administrator
Joined
Jun 19, 2017
Messages
2,815
Hi @wick if you have time... please copy the content of the zip file into your targets/glfw3/template folder. Please backup the curl and msvc folder.
I compiles now and runs. What puzzles me atm is that in debug mode, the httprequest.cxs example retrieves nothing, in release mode it works fine. On MingW both modes work fine.
 

Attachments

  • template.zip
    3.3 MB · Views: 38

wick

Member
3rd Party Module Dev
Tutorial Author
Patreon Bronze
Joined
Jul 17, 2017
Messages
69
Excellent, it also compiles for me. I'll test if my http requests still work.

Is there somewhere I can read up on the differences between minGW and MSVC and such? I've never been quite clear on what they're all doing besides vague "C++ compiling magic". I also don't know how cerberus interacts with them or how to direct it to do so.
 
Top Bottom