Windows에서 Elixir C++ 사용 라이브러리 빌드가 이끼를 피합니다.
방문해 주셔서 감사합니다
Windows에서 Elixir의 C++ 사용 라이브러리의 일부 (예 : bcrypt_elixir)가 빌드에서 이끼를 피하는 단계를 설명합니다.
Visual Studio나 「Build Tools for Visual Studio 2017」을 인스톨 했지만, 잘 빌드할 수 없다고 하는 분도 참고해 주세요
내용이 재미 있거나 마음에 들면 "좋아요"잘 부탁드립니다
본 칼럼의 검증 환경, 사전 구축의 커멘드
이 칼럼은 다음 환경에서 검증되었습니다.
"Phoenix"은 Elixir 웹 프레임 워크입니다.
그리고 다음 명령으로 Phoenix PJ를 구축하고 있습니다.
mix phx.new materia_sample --no-ecto --no-webpack
cd materia_sample
mix compile
mix phx.gen.secret에서 이끼
bcrypt_elixir를 사용하는 라이브러리의 예로, fukuoka.ex 어드바이저의 SI 마이스터 @ Tsuchiro가 지난달 출시 한 OSS "Materia"를 「Materia를 도입해 로그인 인증해 본다」에 따라 설정하는 동안 "mix phx.gen.secret"그런 다음 bcrypt_elixir 빌드에서 이끼
그건 그렇고, Materia는 웹 사용자 인증/권한 관리/트랜잭션 제어를 Elixir에 추가할 수 있는 라이브러리입니다.
이끼 때 오류 메시지는 다음과 같습니다.
mix phx.gen.secret
…(ビルドが続く)…
==> bcrypt_elixir
Microsoft(R) Program Maintenance Utility Version 14.14.26433.0
Copyright (C) Microsoft Corporation. All rights reserved.
del /Q /F priv
c:\piacere\code\materia_sample\deps\bcrypt_elixir\priv が見つかりませんでした。
erl -eval "io:format(\"~s~n\", [lists:concat([\"ERTS_INCLUDE_PATH=\", code:root_dir(), \"/erts-\", erlang:system_info(version), \"/include\"])])" -s init stop -noshell > Makefile.auto.win
nmake / /F Makefile.win priv\bcrypt_nif.dll
Microsoft(R) Program Maintenance Utility Version 14.14.26433.0
Copyright (C) Microsoft Corporation. All rights reserved.
if NOT EXIST "priv" mkdir "priv"
cl /O2 /EHsc /I"c_src" /I"c:/Tools/erl9.0/erts-9.0/include" /LD /MD /Fepriv\bcrypt_nif.dll c_src\bcrypt_nif.c c_src\blowfish.c
Microsoft(R) C/C++ Optimizing Compiler Version 19.14.26433 for x64
Copyright (C) Microsoft Corporation. All rights reserved.
bcrypt_nif.c
c_src\bcrypt_nif.c(52): fatal error C1083: include ファイルを開けません。'stdio.h':No such file or directory
blowfish.c
c:\piacere\code\materia_sample\deps\bcrypt_elixir\c_src\blf.h(37): fatal error C1083: include ファイルを開けません。'stdint.h':No such file or directory
コードを生成中...
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\bin\Hostx64\x64\cl.EXE"' : リターン コード '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\bin\Hostx64\x64\nmake.EXE"' : リターン コード '0x2'
Stop.
could not compile dependency :bcrypt_elixir, "mix compile" failed. You can recompile this dependency with "mix deps.compile bcrypt_elixir", update it with "mix deps.update bcrypt_elixir" or clean it with "mix deps.clean bcrypt_elixir"
==> materia_sample
** (Mix) Could not compile with "nmake" (exit status: 2).
One option is to install a recent version of
[Visual C++ Build Tools](http://landinghub.visualstudio.com/visual-cpp-build-tools)
either manually or using [Chocolatey](https://chocolatey.org/) -
`choco install VisualCppBuildTools`.
After installing Visual C++ Build Tools, look in the "Program Files (x86)"
directory and search for "Microsoft Visual Studio". Note down the full path
of the folder with the highest version number. Open the "run" command and
type in the following command (make sure that the path and version number
are correct):
cmd /K "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
This should open up a command prompt with the necessary environment variables
set, and from which you will be able to run the "mix compile", "mix deps.compile",
and "mix test" commands.
오류 메시지를 보면 "stdio.h"를 찾을 수 없으며 nmake가 실패했다고 표시되고 그 아래에 대책 명령이 포함되어 있지만 정보가 오래되었으며 "Build Tools for Visual Studio 2017"에서 작동하지 않으므로 Build Tools for Visual Studio 2017에 맞는 설정이 필요합니다.
Visual Studio 빌드 설정을 수행하고 빌드를 통과
다음 명령을 실행하면 C++ 헤더 파일에 대한 경로를 통과하고 빌드가 통과합니다.
덧붙여 「Build Tools for Visual Studio 2017」의 인스톨 위치를 변경하고 있는 경우는, 아래의 「~\2017」보다 앞의 폴더 패스를 적절히 수정해 주세요
64비트 Windows의 경우"C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" x64
32비트 Windows의 경우"C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" x86
다시 빌드를 할 것입니다.
mix phx.gen.secret
…(ビルドが続く)…
==> bcrypt_elixir
Microsoft(R) Program Maintenance Utility Version 14.16.27025.1
Copyright (C) Microsoft Corporation. All rights reserved.
del /Q /F priv
erl -eval "io:format(\"~s~n\", [lists:concat([\"ERTS_INCLUDE_PATH=\", code:root_dir(), \"/erts-\", erlang:system_info(version), \"/include\"])])" -s init stop -noshell > Makefile.auto.win
nmake / /F Makefile.win priv\bcrypt_nif.dll
Microsoft(R) Program Maintenance Utility Version 14.16.27025.1
Copyright (C) Microsoft Corporation. All rights reserved.
if NOT EXIST "priv" mkdir "priv"
cl /O2 /EHsc /I"c_src" /I"c:/Tools/erl9.0/erts-9.0/include" /LD /MD /Fepriv\bcrypt_nif.dll c_src\bcrypt_nif.c c_src\blowfish.c
Microsoft(R) C/C++ Optimizing Compiler Version 19.16.27025.1 for x64
Copyright (C) Microsoft Corporation. All rights reserved.
bcrypt_nif.c
blowfish.c
コードを生成中...
Microsoft (R) Incremental Linker Version 14.16.27025.1
Copyright (C) Microsoft Corporation. All rights reserved.
/dll
/implib:priv\bcrypt_nif.lib
/out:priv\bcrypt_nif.dll
bcrypt_nif.obj
blowfish.obj
ライブラリ priv\bcrypt_nif.lib とオブジェクト priv\bcrypt_nif.exp を作成中
Compiling 3 files (.ex)
Generated bcrypt_elixir app
…(ビルドが続く)…
잘 빌드 할 수있었습니다.
p.s.「좋아요」 잘 부탁드립니다
원한다면 페이지 왼쪽 상단의 또는 을 클릭하십시오.
Reference
이 문제에 관하여(Windows에서 Elixir C++ 사용 라이브러리 빌드가 이끼를 피합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/piacerex/items/662f9d7657f8e043272b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
mix phx.gen.secret
…(ビルドが続く)…
==> bcrypt_elixir
Microsoft(R) Program Maintenance Utility Version 14.14.26433.0
Copyright (C) Microsoft Corporation. All rights reserved.
del /Q /F priv
c:\piacere\code\materia_sample\deps\bcrypt_elixir\priv が見つかりませんでした。
erl -eval "io:format(\"~s~n\", [lists:concat([\"ERTS_INCLUDE_PATH=\", code:root_dir(), \"/erts-\", erlang:system_info(version), \"/include\"])])" -s init stop -noshell > Makefile.auto.win
nmake / /F Makefile.win priv\bcrypt_nif.dll
Microsoft(R) Program Maintenance Utility Version 14.14.26433.0
Copyright (C) Microsoft Corporation. All rights reserved.
if NOT EXIST "priv" mkdir "priv"
cl /O2 /EHsc /I"c_src" /I"c:/Tools/erl9.0/erts-9.0/include" /LD /MD /Fepriv\bcrypt_nif.dll c_src\bcrypt_nif.c c_src\blowfish.c
Microsoft(R) C/C++ Optimizing Compiler Version 19.14.26433 for x64
Copyright (C) Microsoft Corporation. All rights reserved.
bcrypt_nif.c
c_src\bcrypt_nif.c(52): fatal error C1083: include ファイルを開けません。'stdio.h':No such file or directory
blowfish.c
c:\piacere\code\materia_sample\deps\bcrypt_elixir\c_src\blf.h(37): fatal error C1083: include ファイルを開けません。'stdint.h':No such file or directory
コードを生成中...
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\bin\Hostx64\x64\cl.EXE"' : リターン コード '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\bin\Hostx64\x64\nmake.EXE"' : リターン コード '0x2'
Stop.
could not compile dependency :bcrypt_elixir, "mix compile" failed. You can recompile this dependency with "mix deps.compile bcrypt_elixir", update it with "mix deps.update bcrypt_elixir" or clean it with "mix deps.clean bcrypt_elixir"
==> materia_sample
** (Mix) Could not compile with "nmake" (exit status: 2).
One option is to install a recent version of
[Visual C++ Build Tools](http://landinghub.visualstudio.com/visual-cpp-build-tools)
either manually or using [Chocolatey](https://chocolatey.org/) -
`choco install VisualCppBuildTools`.
After installing Visual C++ Build Tools, look in the "Program Files (x86)"
directory and search for "Microsoft Visual Studio". Note down the full path
of the folder with the highest version number. Open the "run" command and
type in the following command (make sure that the path and version number
are correct):
cmd /K "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
This should open up a command prompt with the necessary environment variables
set, and from which you will be able to run the "mix compile", "mix deps.compile",
and "mix test" commands.
다음 명령을 실행하면 C++ 헤더 파일에 대한 경로를 통과하고 빌드가 통과합니다.
덧붙여 「Build Tools for Visual Studio 2017」의 인스톨 위치를 변경하고 있는 경우는, 아래의 「~\2017」보다 앞의 폴더 패스를 적절히 수정해 주세요
64비트 Windows의 경우
"C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" x64
32비트 Windows의 경우
"C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" x86
다시 빌드를 할 것입니다.
mix phx.gen.secret
…(ビルドが続く)…
==> bcrypt_elixir
Microsoft(R) Program Maintenance Utility Version 14.16.27025.1
Copyright (C) Microsoft Corporation. All rights reserved.
del /Q /F priv
erl -eval "io:format(\"~s~n\", [lists:concat([\"ERTS_INCLUDE_PATH=\", code:root_dir(), \"/erts-\", erlang:system_info(version), \"/include\"])])" -s init stop -noshell > Makefile.auto.win
nmake / /F Makefile.win priv\bcrypt_nif.dll
Microsoft(R) Program Maintenance Utility Version 14.16.27025.1
Copyright (C) Microsoft Corporation. All rights reserved.
if NOT EXIST "priv" mkdir "priv"
cl /O2 /EHsc /I"c_src" /I"c:/Tools/erl9.0/erts-9.0/include" /LD /MD /Fepriv\bcrypt_nif.dll c_src\bcrypt_nif.c c_src\blowfish.c
Microsoft(R) C/C++ Optimizing Compiler Version 19.16.27025.1 for x64
Copyright (C) Microsoft Corporation. All rights reserved.
bcrypt_nif.c
blowfish.c
コードを生成中...
Microsoft (R) Incremental Linker Version 14.16.27025.1
Copyright (C) Microsoft Corporation. All rights reserved.
/dll
/implib:priv\bcrypt_nif.lib
/out:priv\bcrypt_nif.dll
bcrypt_nif.obj
blowfish.obj
ライブラリ priv\bcrypt_nif.lib とオブジェクト priv\bcrypt_nif.exp を作成中
Compiling 3 files (.ex)
Generated bcrypt_elixir app
…(ビルドが続く)…
잘 빌드 할 수있었습니다.
p.s.「좋아요」 잘 부탁드립니다
원한다면 페이지 왼쪽 상단의 또는 을 클릭하십시오.
Reference
이 문제에 관하여(Windows에서 Elixir C++ 사용 라이브러리 빌드가 이끼를 피합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/piacerex/items/662f9d7657f8e043272b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Windows에서 Elixir C++ 사용 라이브러리 빌드가 이끼를 피합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/piacerex/items/662f9d7657f8e043272b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)