Build fail: unresolved external symbol mainCRTStartup

Kevin Rushforth kevin.rushforth at oracle.com
Mon Nov 11 08:43:30 PST 2013


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