2015-04-28 2 views
0

Я хочу отладить код хрома, чтобы проверить, как он компилирует код javascript. Я скачал код хрома и пытаюсь построить файл решения CEF с помощью Visual Studio, но я получаю следующее сообщение об ошибке:Создание и отладка Chromium с помощью визуальной студии с ошибкой: ошибка LNK1112: тип модуля типа «x64» конфликтует с типом машины «X86»

ошибка LNK1112: конфликты модуля типа машины «x64» с целевым типом машины «X86» \ THIRD_PARTY \ libjpeg_turbo \ jccolss2-64.obj cefclient

ошибка MSB3073: команда "вызов ninja.exe -C .. \ из \ Debug \ cefclient" вышел с кодом 1. D: \ Ishan \ хром \ хром \ хром \ src \ cef \ cefclient.vcxproj cefclient

Помогите мне разрешить эту ошибку

Thanks Ishan jain

ответ

0

Вы используете 64-битную Windows? Этот файл звучит так, как будто вы можете создавать только 64-разрядную версию в 64-разрядной ОС. Если вы все еще можете помочь, вы можете увидеть, как они определяют хост и цель.

https://code.google.com/p/v8/source/browse/branches/bleeding_edge/src/base/build_config.h?r=24402

+0

Я проверил 64-битный код, теперь я получаю выше ошибки. –

+0

Да, но вы используете 64-разрядную ОС Windows на машине, на которой вы пытаетесь построить? Это похоже на то, о чем он жалуется. – PhysicalEd

+0

Так что я хочу построить 64-битный хром и использовать 64 окна. Разве мы не можем это сделать? –

1

Хром может быть построен только на 64-битной Windows, это не имеет значения, если вы строите 32-бит на 64-бит. Windows 7 x64 или новее является обязательным.

Кажется, вы настроили билд быть 64-бит (если вы используете ниндзя, скорее всего, с SET GYP_DEFINES = target_arch = 64), но вы строите 32-битную, скорее всего, с помощью
ниндзя -C out \ Debug. Таким образом, кажется, что у вас настроена 64-битная конструкция, но вы строите 32-битный.

64-разрядная сборка находится в Debug_x64 (или Debug_64, я не помню сейчас). Итак:
- если вы настроили target_arch = x64, строить с нинзя -С из \ Debug_x64
- если вы настроили target_arch = ia32 (или пусть пусто, я думаю, по умолчанию сборка 32-бит на Windows), построить с ninja -C out \ Debug

AFAIK вы не можете построить в том же каталоге - но, возможно, я ошибаюсь - как сборка 32, так и 64 (из-за сгенерированных файлов .ninja, в основном). Если вы используете SET GYP_GENERATORS = msvs-ninja, ninja (в основном, если вы создаете решение Visual Studio), это может сработать, но msvs-ninja не поддерживается и не поддерживается (больше).

Редактировать: ninja build из примера Visual Studio.
VS External Tools> Добавить запись как:
Название Построить libcef Debug
Command F: \ DEV \ CEF \ 2357 \ сборки.летучая
(источники в F: \ DEV \ CEF \ 2357 \ x86 \ хром)
Аргументы отладочных
Начальный каталог F: \ DEV \ CEF \ 2357

Моя раскладка это (построить ветвь 2357):
F: \ DEV \ CEF \ 2357 корневой каталог
/
    automate-git.py
    build.bat
    x86/
        хрома/

build.bat находится ниже файл; Каталог x86/создается вручную. В x86 у меня есть проверка хром (cef и depot_tools появятся также под x86 /).


Мой файл build.bat, как это (подробности можно легко разобрался):

@echo off 

:: set env vars affecting CEF build 
SET GYP_GENERATORS=msvs-ninja,ninja 
SET GYP_MSVS_VERSION=2013 
SET DEPOT_TOOLS_WIN_TOOLCHAIN=0 
SET GYP_DEFINES=target_arch=ia32 
SET DEPOT_TOOLS=F:\dev\CEF\2357\x86\depot_tools 
SET PATH=%DEPOT_TOOLS%;%PATH% 

set ROOTDIST=F:\dev\CEF\2357\x86\.deploy\ 
set BUILDOUT=F:\dev\CEF\2357\x86\chromium\src\out 
set REDIST=F:\dev\CEF\2357\x86\chromium\src\cef\tools\distrib\win 
set CEFDIST=3.43.0.2357.18.20150512 

:: change to directory if not already there 
PUSHD 
set CURDIR=%CD% 
@echo Current directory is %CURDIR% 
if [%CURDIR%] EQU [F:\dev\CEF\2357] goto l_config 
F: 
cd F:\dev\CEF\2357 
set CURDIR=%CD% 
@echo Current directory changed to %CURDIR% 

:l_config 
F:\dev\CEF\2357\automate-git.py --download-dir=F:\dev\CEF\2357\x86 --branch=2357 --no-update 
goto l_build 

:l_build 
cd x86\chromium\src 

if [%1%] EQU [all] goto l_build_all 
if [%1%] EQU [debug] goto l_build_dbg 
if [%1%] EQU [release] goto l_build_rel 
if [%1%] EQU [distrib] goto l_build_distrib 
if [%1%] EQU [distclean] goto l_build_distclean 
if [%1%] EQU [clean] goto l_build_clean 
goto l_error 

:l_build_all 
@echo Building libcef branch 2357 Debug. 
ninja -C out\Debug cefclient 
@echo Building libcef branch 2357 Release. 
ninja -C out\Release cefclient 
@echo Build libcef Debug,Release branch 2357 finished. 
goto l_build_distclean 

:l_build_dbg 
@echo Building libcef branch 2357 Debug. 
ninja -C out\Debug cefclient 
@echo Build libcef Debug branch 2357 finished. 
goto l_end 

:l_build_rel 
@echo Building libcef branch 2357 Release. 
ninja -C out\Release cefclient 
@echo Build libcef Release branch 2357 finished. 
goto l_end 

:l_build_clean 
@echo Cleaning build libcef branch 2357. 
ninja -C out\Debug -t clean cefclient 
ninja -C out\Release -t clean cefclient 
@echo Clean libcef branch 2357 finished. 
goto l_end 

:l_build_distclean 
@echo Clean libcef branch 2357 %CEFDIST% distribution. 
rmdir /s /q %ROOTDIST%\%CEFDIST% 
goto l_build_distrib 

:l_build_distrib 
@echo Make libcef branch 2357 %CEFDIST% distribution. 
@echo Deploy directory: %ROOTDIST%%CEFDIST% 
:: /.patch 
:: /include 
:: /base 
:: /internal 
:: /capi 
:: /internal 
:: /wrapper 
:: /lib 
:: /Win32 
:: /Debug 
:: /lib 
:: /locales 
:: /Release 
:: /lib 
:: /locales 
:: 
:: ensure target path 
mkdir %ROOTDIST%\%CEFDIST% 
mkdir %ROOTDIST%\%CEFDIST%\include 
mkdir %ROOTDIST%\%CEFDIST%\lib 
mkdir %ROOTDIST%\%CEFDIST%\lib\Win32 
mkdir %ROOTDIST%\%CEFDIST%\lib\Win32\Debug 
mkdir %ROOTDIST%\%CEFDIST%\lib\Win32\Debug\lib 
mkdir %ROOTDIST%\%CEFDIST%\lib\Win32\Release 
mkdir %ROOTDIST%\%CEFDIST%\lib\Win32\Release\lib 

:: include files 
xcopy f:\dev\CEF\2357\x86\chromium\src\cef\include   %ROOTDIST%\%CEFDIST%\include    /S /E /Y /I 
:: bdCefVer.h 
copy /Y f:\dev\CEF\2357\x86\chromium\src\cef\bdCefVer.h  %ROOTDIST%\%CEFDIST%\bdCefVer.h 

:: Debug 
:: locales 
xcopy %BUILDOUT%\Debug\locales %ROOTDIST%\%CEFDIST%\lib\Win32\Debug\locales /S /E /Y /I 
:: lib 
copy /Y %BUILDOUT%\Debug\libcef.dll.lib      %ROOTDIST%\%CEFDIST%\lib\Win32\Debug\lib\libcef.dll.lib 
copy /Y %BUILDOUT%\Debug\libEGL.dll.lib      %ROOTDIST%\%CEFDIST%\lib\Win32\Debug\lib\libEGL.dll.lib 
copy /Y %BUILDOUT%\Debug\libGLESv2.dll.lib     %ROOTDIST%\%CEFDIST%\lib\Win32\Debug\lib\libGLESv2.dll.lib 
copy /Y %BUILDOUT%\Debug\ffmpegsumo.dll.lib     %ROOTDIST%\%CEFDIST%\lib\Win32\Debug\lib\ffmpegsumo.dll.lib 
copy /Y %BUILDOUT%\Debug\obj\cef\cef_sandbox.lib   %ROOTDIST%\%CEFDIST%\lib\Win32\Debug\lib\cef_sandbox.lib 
copy /Y %BUILDOUT%\Debug\obj\cef\libcef_dll_wrapper.lib  %ROOTDIST%\%CEFDIST%\lib\Win32\Debug\lib\libcef_dll_wrapper.lib 
copy /Y %BUILDOUT%\Debug\obj\cef\libcef_static.lib   %ROOTDIST%\%CEFDIST%\lib\Win32\Debug\lib\libcef_static.lib 
:: binaries, paks, redistributables 
copy /Y %BUILDOUT%\Debug\natives_blob.bin     %ROOTDIST%\%CEFDIST%\lib\Win32\Debug\natives_blob.bin 
copy /Y %BUILDOUT%\Debug\snapshot_blob.bin     %ROOTDIST%\%CEFDIST%\lib\Win32\Debug\snapshot_blob.bin 
copy /Y %BUILDOUT%\Debug\icudtl.dat       %ROOTDIST%\%CEFDIST%\lib\Win32\Debug\icudtl.dat 
:: copy /Y %REDIST%\d3dcompiler_43.dll      %ROOTDIST%\%CEFDIST%\lib\Win32\Debug\d3dcompiler_43.dll 
copy /Y %BUILDOUT%\Debug\d3dcompiler_47.dll     %ROOTDIST%\%CEFDIST%\lib\Win32\Debug\d3dcompiler_47.dll 
copy /Y %BUILDOUT%\Debug\ffmpegsumo.dll      %ROOTDIST%\%CEFDIST%\lib\Win32\Debug\ffmpegsumo.dll 
copy /Y %BUILDOUT%\Debug\ffmpegsumo.dll.pdb     %ROOTDIST%\%CEFDIST%\lib\Win32\Debug\ffmpegsumo.dll.pdb 
copy /Y %BUILDOUT%\Debug\libcef.dll       %ROOTDIST%\%CEFDIST%\lib\Win32\Debug\libcef.dll 
copy /Y %BUILDOUT%\Debug\libcef.dll.pdb      %ROOTDIST%\%CEFDIST%\lib\Win32\Debug\libcef.dll.pdb 
copy /Y %BUILDOUT%\Debug\libEGL.dll       %ROOTDIST%\%CEFDIST%\lib\Win32\Debug\libEGL.dll 
copy /Y %BUILDOUT%\Debug\libEGL.dll.pdb      %ROOTDIST%\%CEFDIST%\lib\Win32\Debug\libEGL.dll.pdb 
copy /Y %BUILDOUT%\Debug\libGLESv2.dll      %ROOTDIST%\%CEFDIST%\lib\Win32\Debug\libGLESv2.dll 
copy /Y %BUILDOUT%\Debug\libGLESv2.dll.pdb     %ROOTDIST%\%CEFDIST%\lib\Win32\Debug\libGLESv2.dll.pdb 
copy /Y %BUILDOUT%\Debug\cefclient.exe      %ROOTDIST%\%CEFDIST%\lib\Win32\Debug\cefclient.exe 
copy /Y %BUILDOUT%\Debug\wow_helper.exe      %ROOTDIST%\%CEFDIST%\lib\Win32\Debug\wow_helper.exe 
copy /Y %BUILDOUT%\Debug\wow_helper.pdb      %ROOTDIST%\%CEFDIST%\lib\Win32\Debug\wow_helper.pdb 
copy /Y %BUILDOUT%\Debug\cef.pak       %ROOTDIST%\%CEFDIST%\lib\Win32\Debug\cef.pak 
copy /Y %BUILDOUT%\Debug\cef_100_percent.pak    %ROOTDIST%\%CEFDIST%\lib\Win32\Debug\cef_100_percent.pak 
copy /Y %BUILDOUT%\Debug\cef_200_percent.pak    %ROOTDIST%\%CEFDIST%\lib\Win32\Debug\cef_200_percent.pak 
copy /Y %BUILDOUT%\Debug\devtools_resources.pak    %ROOTDIST%\%CEFDIST%\lib\Win32\Debug\devtools_resources.pak 

:: Release 
:: locales 
xcopy %BUILDOUT%\Release\locales %ROOTDIST%\%CEFDIST%\lib\Win32\Release\locales /S /E /Y /I /F 
:: lib 
copy /Y %BUILDOUT%\Release\libcef.dll.lib     %ROOTDIST%\%CEFDIST%\lib\Win32\Release\lib\libcef.dll.lib 
copy /Y %BUILDOUT%\Release\libEGL.dll.lib     %ROOTDIST%\%CEFDIST%\lib\Win32\Release\lib\libEGL.dll.lib 
copy /Y %BUILDOUT%\Release\libGLESv2.dll.lib    %ROOTDIST%\%CEFDIST%\lib\Win32\Release\lib\libGLESv2.dll.lib 
copy /Y %BUILDOUT%\Release\ffmpegsumo.dll.lib    %ROOTDIST%\%CEFDIST%\lib\Win32\Release\lib\ffmpegsumo.dll.lib 
copy /Y %BUILDOUT%\Release\obj\cef\libcef_dll_wrapper.lib %ROOTDIST%\%CEFDIST%\lib\Win32\Release\lib\libcef_dll_wrapper.lib 
copy /Y %BUILDOUT%\Release\obj\cef\libcef_static.lib  %ROOTDIST%\%CEFDIST%\lib\Win32\Release\lib\libcef_static.lib 
copy /Y %BUILDOUT%\Release\obj\cef\cef_sandbox.lib   %ROOTDIST%\%CEFDIST%\lib\Win32\Release\lib\cef_sandbox.lib 
:: binaries, paks, redistributables 
copy /Y %BUILDOUT%\Release\natives_blob.bin     %ROOTDIST%\%CEFDIST%\lib\Win32\Release\natives_blob.bin 
copy /Y %BUILDOUT%\Release\snapshot_blob.bin    %ROOTDIST%\%CEFDIST%\lib\Win32\Release\snapshot_blob.bin 
copy /Y %BUILDOUT%\Release\icudtl.dat      %ROOTDIST%\%CEFDIST%\lib\Win32\Release\icudtl.dat 
:: copy /Y %REDIST%\d3dcompiler_43.dll      %ROOTDIST%\%CEFDIST%\lib\Win32\Release\d3dcompiler_43.dll 
copy /Y %BUILDOUT%\Release\d3dcompiler_47.dll    %ROOTDIST%\%CEFDIST%\lib\Win32\Release\d3dcompiler_47.dll 
copy /Y %BUILDOUT%\Release\ffmpegsumo.dll     %ROOTDIST%\%CEFDIST%\lib\Win32\Release\ffmpegsumo.dll 
copy /Y %BUILDOUT%\Release\ffmpegsumo.dll.pdb    %ROOTDIST%\%CEFDIST%\lib\Win32\Release\ffmpegsumo.dll.pdb 
copy /Y %BUILDOUT%\Release\libcef.dll      %ROOTDIST%\%CEFDIST%\lib\Win32\Release\libcef.dll 
copy /Y %BUILDOUT%\Release\libcef.dll.pdb     %ROOTDIST%\%CEFDIST%\lib\Win32\Release\libcef.dll.pdb 
copy /Y %BUILDOUT%\Release\libEGL.dll      %ROOTDIST%\%CEFDIST%\lib\Win32\Release\libEGL.dll 
copy /Y %BUILDOUT%\Release\libEGL.dll.pdb     %ROOTDIST%\%CEFDIST%\lib\Win32\Release\libEGL.dll.pdb 
copy /Y %BUILDOUT%\Release\libGLESv2.dll     %ROOTDIST%\%CEFDIST%\lib\Win32\Release\libGLESv2.dll 
copy /Y %BUILDOUT%\Release\libGLESv2.dll.pdb    %ROOTDIST%\%CEFDIST%\lib\Win32\Release\libGLESv2.dll.pdb 
copy /Y %BUILDOUT%\Release\cefclient.exe     %ROOTDIST%\%CEFDIST%\lib\Win32\Release\cefclient.exe 
copy /Y %BUILDOUT%\Release\wow_helper.exe     %ROOTDIST%\%CEFDIST%\lib\Win32\Release\wow_helper.exe 
copy /Y %BUILDOUT%\Release\wow_helper.pdb     %ROOTDIST%\%CEFDIST%\lib\Win32\Release\wow_helper.pdb 
copy /Y %BUILDOUT%\Release\cef.pak       %ROOTDIST%\%CEFDIST%\lib\Win32\Release\cef.pak 
copy /Y %BUILDOUT%\Release\cef_100_percent.pak    %ROOTDIST%\%CEFDIST%\lib\Win32\Release\cef_100_percent.pak 
copy /Y %BUILDOUT%\Release\cef_200_percent.pak    %ROOTDIST%\%CEFDIST%\lib\Win32\Release\cef_200_percent.pak 
copy /Y %BUILDOUT%\Release\devtools_resources.pak   %ROOTDIST%\%CEFDIST%\lib\Win32\Release\devtools_resources.pak 

copy /Y %REDIST%\README.redistrib.txt      %ROOTDIST%\%CEFDIST%\README.redistrib.txt 

@echo Making distribution libcef Debug,Release branch 2357 finished. 
goto l_end 

:l_error 
@echo Invalid or missing option. 
goto l_end 

:l_end 
F: 
cd F:\dev\CEF\2357 
POPD 
+0

На самом деле я могу построить теперь с помощью командной строки, которая использует ninja. Но если я использую визуальную студию для создания хрома, даже с конфигурацией отладки x64, он создает файлы сборки в каталоге out/Debug вместо out/Debug_x64. И это не полностью заполняет и перерывы между вышеупомянутыми ошибками. –

+0

Потому что он настроен на создание x86, а не x64. Вы можете настроить ninja build из VS. –

+0

Можете ли вы рассказать мне, как я могу настроить сборку ниндзя из VS? Было бы очень полезно. И еще одно, что я могу построить от запуска в VS, на самом деле я могу отлаживать уже запущенный cef, но я хочу понять все процессы, происходящие при его создании. –

Смежные вопросы

 Смежные вопросы