Scenic을 사용해보십시오 (Elixir)

6567 단어 Elixir

소개



  • Scenic이 시점에서 지금은 무엇인지 확실하지 않습니다.
  • 어쨌든 굉장하다는 소문을 남겨두고 행해지고 있다 ElixirConf EU Virtual
  • 나는 같은 시간에 열렸다 @zacky1972 선생님의 Pelemay Updates을 공부했습니다.

  • Getting Started적인 것을 해보자
  • macOS 10.15.5
    elixir         1.10.3-otp-23
    erlang         23.0.1 
    

    준비


  • Erlang, Elixir 설치
  • 앞으로 된장 기사입니다만 설치 를 참고해 주세요


  • 종속성을 해결합시다.
  • macOS의 경우 Homebrew에서 다음과 같은 느낌입니다

  • $ brew update
    $ brew install glfw3 glew pkg-config
    

    Getting Started의 거리를 찾아보세요


    $ mix archive.install hex scenic_new
    $ mix scenic.new my_app
    $ cd my_app
    $ mix deps.get
    $ mix scenic.run
    





    데스크탑 애플리케이션이 만들어지는 것 같습니다!

    Scenic is a client application library written directly on the Elixir/Erlang/OTP stack. With it you can build applications that operate identically across all supported operating systems, including MacOS, Ubuntu, Nerves/Linux, and more.

    응급 처치


  • 위에서 잘 작동하지만 mix scenic.run 때 발생하는 다음 오류를 좀처럼 해결할 수 없었습니다
  • 23:59:25.590 [info]  Application my_app exited: MyApp.start(:normal, []) returned an error: shutdown: failed to start child: Scenic
        ** (EXIT) shutdown: failed to start child: Scenic.ViewPort.SupervisorTop
            ** (EXIT) shutdown: failed to start child: :main_viewport
                ** (EXIT) shutdown: failed to start child: Scenic.ViewPort.Driver.Supervisor
                    ** (EXIT) an exception was raised:
                        ** (ArgumentError) The module Scenic.Driver.Glfw was given as a child to a supervisor but it does not exist.
                            (elixir) lib/supervisor.ex:629: Supervisor.init_child/1
                            (elixir) lib/enum.ex:1336: Enum."-map/2-lists^map/1-0-"/2
                            (elixir) lib/supervisor.ex:615: Supervisor.init/2
                            (stdlib) supervisor.erl:295: :supervisor.init/1
                            (stdlib) gen_server.erl:374: :gen_server.init_it/2
                            (stdlib) gen_server.erl:342: :gen_server.init_it/6
                            (stdlib) proc_lib.erl:249: :proc_lib.init_p_do_apply/3
    

  • 내용은 Scenic.Driver.Glfw can't be found when run mix scenic.run #164과 유사하며 다음 해결책을 보여줍니다.
  • 환경 변수에 MIX_TARGET를 지정하는 경우에 지우십시오
  • 나는 정확하게 적용됩니다

  • Nerves 을 잘 어울리기 때문에 환경 변수에 rpi2 를 넣고 있었습니다
  • 지우고 터미널을 다시 시작해도 문제가 해결되지 않고 ...

  • $ mix deps.compile scenic_driver_glfw 그렇다면 좋다.
  • 해보면, 그런 모르겠어 ( ** (Mix) Unknown dependency scenic_driver_glfw for environment dev )라고 한다
  • 이유가 컴파일 대상이 아닌 것 같습니다
  • 이것은 큰 전진입니다!
  • 그리고 비슷한 문제에 부딪쳤을 때 문제를 구분하는 데 사용할 수 있을 것 같습니다!



  • 이것들을 힌트로 mix.exs 에서 targets: :host 를 지워 보았습니다
  • 빙고


  • mix.exs
      defp deps do
        [
          {:scenic, "~> 0.10"},
          #{:scenic_driver_glfw, "~> 0.10", targets: :host},
          {:scenic_driver_glfw, "~> 0.10"},
        ]
      end
    

    Wrapping Up


  • 이 기사는 Scenic
  • 그 때문에 「무엇이 대단한 것인가」라고 하는 삶으로 들은 분들이 흥분되고 있던 부분을 전할 수는 없습니다
  • 그 중 동영상이 공개되면 안되니까 그쪽을 보려고 생각합니다.


  • ElixirConf EU Virtual 은 2019/6/19(일본 시간 21:00부터. 프리 이벤트가 20:00부터)도 있습니다!
  • Enjoy!
  • 좋은 웹페이지 즐겨찾기