Build fail: unresolved external symbol mainCRTStartup

Anthony Petrov anthony.petrov at oracle.com
Tue Nov 12 08:56:49 PST 2013


Hi Leonid,

I've never been able to build WebKit on my Windows in the past, so I 
don't know what the problem is. However, could you check what exactly 
the lib.exe is trying to link? Is it possible to enable some logging for 
nmake when building JavaScriptCoreJava, so that we actually see the 
content of the .\nm2BB0.tmp file (mentioned in the log below) to see all 
the command line switches and libraries it's trying to link together? It 
should be `nmake /D /V`, I believe.

--
best regards,
Anthony

On 11/12/2013 06:00 PM, Leonid Popov wrote:
> Thanks Kevin, but unfortunately it didn't help. Even having it cleaned
> completely, the build script still generates 32-bit YarrInterpreter.obj
> and then fails to link it to a 64-bit library. Still investigating.
>
> On 11/11/2013 8:43 PM, Kevin Rushforth wrote:
>> Hi Leonid,
>>
>> Building JavaFX on Windows requires Cygwin, so it doesn't surprise me
>> that it fails with a DOS shell.
>>
>> The error you are seeing on cygwin seems like a mismatch where part of
>> the build is trying to use a 32-bit build and part trying to use 64-bit.
>>
>> My recommendation is to try the following, from a cygwin shell:
>>
>> 1. Ensure that your JAVA_HOME and PATH point to the same version of
>> Java (the 32-bit Java).
>>
>> 2. Completely clean your repo
>>
>> cd rt
>> gradle clean
>> rm -rf buildSrc/build buildSrc/.gradle .gradle
>>
>>
>> 3. Rebuild, making sure you compile both media and webkit (not sure if
>> needed, but better to remove one more variable):
>>
>> gradle -PCOMPILE_WEBKIT=true -PCOMPILE_MEDIA=true sdk
>>
>>
>> See if the above will work.
>>
>> -- Kevin
>>
>>
>> Leonid Popov wrote:
>>> Hi Steve,
>>>
>>> Yes, I use 32-bit JDK for building. I tried to build it from both
>>> Windows and Cygwin command shells. The error I mentioned happens when
>>> building from Windows. If I try to build it from Cygwin, I get
>>> another error:
>>>
>>> Building Webkit configuration /Release/ into
>>> C:\javafx\8my\jfx\rt\modules\web\build/win
>>> Calling 'qmake -makefile
>>> C:/javafx/8my/jfx/rt/modules/web/src/main/native/Source/WebKitJava.pro CONFIG-=debug
>>> CONFIG+=release DEFINES+=IMAGEIO=1' in
>>> "C:/javafx/8my/jfx/rt/modules/web/build/win/Release" ...
>>>
>>>
>>> Microsoft (R) Program Maintenance Utility Version 10.00.30319.01
>>> Copyright (C) Microsoft Corporation.  All rights reserved.
>>>
>>>         cd JavaScriptCore\ && C:\MsVS10\VC\BIN\nmake.exe -f
>>> Makefile.JavaScriptCoreJava
>>>
>>> Microsoft (R) Program Maintenance Utility Version 10.00.30319.01
>>> Copyright (C) Microsoft Corporation.  All rights reserved.
>>>
>>>         lib /NOLOGO  /OUT:..\lib\JavaScriptCoreJava.lib @.\nm2BB0.tmp
>>> obj\YarrInterpreter.obj : fatal error LNK1112: module machine type
>>> 'X86' conflicts with target machine type 'x64'
>>> NMAKE : fatal error U1077: 'C:\MsVS10\VC\BIN\lib.EXE' : return code
>>> '0x458'
>>> Stop.
>>> NMAKE : fatal error U1077: 'cd' : return code '0x2'
>>> Stop.
>>>
>>> My script for Cygwin is:
>>>
>>> export DXSDK_DIR=/cygdrive/c/DXSDK/
>>> export WMSDK_DIR=/cygdrive/c/WMSDK/WMFSDK11/
>>> export QTSDK_DIR=/cygdrive/c/Qt/4.6.0/
>>>
>>> export VSINSTALLDIR=/cygdrive/C/MsVS10
>>> export WINDOWS_VS_PATH=/cygdrive/C/MsVS10/VC/bin
>>>
>>> export GRADLE_DIR=/cygdrive/c/tools/gradle/
>>>
>>> export JDK_HOME=/cygdrive/c/java/8b112/
>>> export JAVA_HOME=$JDK_HOME
>>>
>>> export ANT_HOME=/cygdrive/c/ant/
>>>
>>> export
>>> PATH=$GRADLE_DIR/bin/:$JAVA_HOME/bin/:$DXSDK_DIR/Utilities/Bin/x86:$PATH
>>>
>>> $GRADLE_DIR/bin/gradle -PCOMPILE_WEBKIT=true -PCONF=Debug sdk
>>>
>>> I'm trying but I can't realize what changed after my last successfull
>>> build.
>>>
>>> Leonid.
>>>
>>>
>>> On 11/8/2013 9:10 PM, Stephen F Northover wrote:
>>>> Hi Leonid,
>>>>
>>>> I have the same configuration as you I think.  I'm just making sure
>>>> I can build.  First, do you have 32-bit JDK8?  Are you running under
>>>> a cygwin shell?  What is your gradle command line?
>>>>
>>>> Steve
>>>>
>>>> On 2013-11-08 9:08 AM, Leonid Popov wrote:
>>>>> Hi,
>>>>>
>>>>> I've just cloned a new workspace from
>>>>> ssh://jfxsrc.us.oracle.com//javafx/8.0/scrum/graphics/jfx and tried
>>>>> to build it. The following error encountered:
>>>>>
>>>>>     link /LIBPATH:"..\lib" /NOLOGO /MAP /INCREMENTAL:NO
>>>>> /SUBSYSTEM:CONSOLE /MANIFEST
>>>>> /MANIFESTFILE:"obj\DerivedSourcesJava.intermediate.manifest"
>>>>> /OUT:..\lib\DerivedSourcesJava.exe
>>>>> @C:\Users\lp154592\AppData\Local\Temp\nm9A16.tmp
>>>>> LINK : error LNK2001: unresolved external symbol mainCRTStartup
>>>>> ..\lib\DerivedSourcesJava.exe : fatal error LNK1120: 1 unresolved
>>>>> externals
>>>>>
>>>>> My box is Windows 7 64-bit with MSVS 10 installed; Gradle 1.4 is
>>>>> used for building.
>>>>>
>>>>> Any suggestions?
>>>>>
>>>>> Thanks,
>>>>> Leonid
>>>>
>>>
>


More information about the openjfx-dev mailing list