リモート講義 Xなし演習室 - eiichiromomma/CVMLAB GitHub Wiki

(リモート講義) 演習室の再現(X Window System無し版)

電気工学科設置科目 コンピュータプログラミング(古川・門馬)でのCygwin64を構築する方法。(バージョンは指定しない)

※C言語関係・ライブラリ関係は演習室と同等の環境になります

2-5が重要です。setup-x86_64.exeを考え無しに実行した場合はインストーラーの動きとしては完了しても,必要なソフトがインストールされません

セットアッププログラムの開始手順

1. 本家からインストーラを持ってくる

※64bit版Windowsであってもインストーラが上手く起動できない場合があるようです。setup-x86.exeの方を使うと上手く行きますがコマンドプロンプトを管理者として実行して,下記手順を実行する必要があります。分からない場合は門馬まで。

名前を付けて保存で「ダウンロード」フォルダに保存

2. コマンドプロンプトでパッケージを指定してセットアッププログラムを実行する

2-1. エクスプローラで「ダウンロード」を開く

2-2. フォルダ階層が書かれている部分をクリックすると,フォルダ名が選択された状態になる

2-3. そのまま半角文字でcmdと打ってEnterキーを押す

2-4. 「ダウンロード」の場所でコマンドプロンプトが開く

2-5. ダウンロードしたsetupコマンドをオプション付きで起動する。具体的には以下のコマンドをコピペしてEnter (ものすごく長い)

setup-x86_64.exe -P _autorebase,alternatives,autoconf,autoconf2.1,autoconf2.5,autogen,automake,base-cygwin,base-files,bash,binutils,bison,bovo,bzip2,ca-certificates,cgdb,clang,cmake,connectagram,coreutils,cppcheck,cppunit,crypt,csih,ctags,ctris,curl,cutemaze,cygrunsrv,cygutils,cygwin,cygwin-devel,damageproto,dash,diffutils,editrights,eigen3,emacs,emacs-anthy,emacs-clang-format,emacs-cmake,emacs-w32,expat,f2c,fftw3,fftw3-doc,file,findutils,fixesproto,flex,foobillard,fortune-mod,gamin,gawk,gcc-core,gcc-fortran,gcc-g++,gd,gdb,gdk-pixbuf2.0-svg,geany,geany-plugins-addons,geany-plugins-codenav,geany-plugins-debugger,geany-plugins-geanyctags,geany-plugins-geanypg,geany-plugins-geanyprj,geany-plugins-geanyvc,geany-plugins-geniuspaste,geany-plugins-markdown,geany-plugins-scope,geany-plugins-geanypy,geany-plugins-overview,getent,gettext,gettext-devel,ghostscript,ghostscript-fonts-other,ghostscript-fonts-std,girepository-GLib2.0,git,glib2.0-networking,gmult,gnuchess,gnugo,gnupg,gottet,greed,grep,groff,gweled,gzip,hdf5,hexalate,hitori,hostname,iagno,idle,idle3,ImageMagick,ImageMagick-doc,info,ipc-utils,jpeg,lapack,less,libakonadiprotocolinternals1,libarchive13,libargp,libaspell15,libasyncns0,libatk-bridge2.0_0,libatk1.0_0,libatomic1,libatspi0,libattica0.4,libattr1,libaudio2,libautotrace3,libblkid1,libboost-devel,libbotan1.10_1,libbz2-devel,libbz2_1,libcairo2,libcharset1,libclang3.8,libclutter1.0_0,libcogl-common,libcogl20,libcom_err2,libcroco0.6_3,libcrypt-devel,libcrypt0,libcurl-devel,libcurl4,libdatrie1,libdb5.3,libdbus-glib_1_2,libdbus1_3,libdmtx0,libe-book-tools,libe-book0.1_1,libedit0,libEGL1,libEMF1,libenchant1,libEnginio1,libepoxy0,libexiv2_14,libexpat-devel,libexpat1,libf2c-devel,libfam0,libffi6,libfftw3-devel,libfftw3-omp3,libfftw3_3,libFLAC8,libfluidsynth1,libfpx1,libfreetype-devel,libfreetype6,libgames-support-common,libgames-support0,libgc1,libgcc1,libgcrypt20,libgd-devel,libgd3,libgdbm4,libgdk_pixbuf2.0_0,libgee0.8_2,libgeoclue0,libgfortran3,libgif-devel,libgif4,libgirepository1.0_1,libglapi0,libglib2.0-devel,libglib2.0_0,libgmp-devel,libgmp10,libgmpxx4,libgnutls28,libgomp1,libgpg-error0,libgpgme11,libGraphicsMagick++12,libGraphicsMagick-devel,libGraphicsMagick3,libGraphicsMagickWand2,libgraphite2_3,libgs9,libgsm1,libgssapi_krb5_2,libgstinterfaces0.10_0,libgstinterfaces1.0_0,libgstreamer0.10_0,libgstreamer1.0_0,libguile17,libharfbuzz0,libhdf5-devel,libhdf5_10,libhdf5cpp_12,libhdf5hl_10,libhdf5hlcpp_11,libhogweed2,libhunspell1.3_0,libhunspell1.4_0,libical1,libICE6,libiconv,libiconv-devel,libiconv2,libicu-devel,libicu57,libicu58,libidn11,libidn2_0,libilmbase12,libIlmImf22,libintl-devel,libintl8,libiodbc2,libisl13,libjasper1,libjbig-devel,libjbig2,libjpeg-devel,libjpeg8,libjson-c-common,libjson-c2,libjson-glib1.0_0,libkmahjongg-common,libkmahjongg4,libkpim-common,libkpim4,libkrb5_3,libkrb5support0,liblapack-devel,liblapack0,liblcms2-devel,liblcms2_2,libllvm3.8,libltdl7,liblz4_1,liblzma-devel,liblzma5,liblzo2_2,libMagick-devel,libMagickC++6_6,libMagickCore6_2,libMagickWand6_2,libmetalink3,libmikmod3,libming1,libmng-devel,libmng2,libmodplug1,libmpc3,libmpfr4,libmysqlclient18,libncurses-devel,libncursesw10,libnetpbm-devel,libnetpbm10,libnettle4,libnghttp2_14,libnspr4,libnss3,libogg0,libopenal1,libopenblas,libopencv-devel,libopencv3.4,opencv,libopenjp2_7,libopenldap2_4_2,libopenmpi12,libopenssl100,libopts-devel,libopts25,liborc0.4_0,libp11-kit0,libpango1.0_0,libpaper-common,libpaper1,libpcre-devel,libpcre1,libpcre16_0,libpcre32_0,libpcrecpp0,libpcreposix0,libphonon4,libpipeline1,libpixman1-devel,libpixman1_0,libplotter2,libpng-devel,libpng-tools,libpng16,libpng16-devel,libpopt-common,libpopt0,libportaudio2,libpq5,libprison0,libproxy1,libpsl5,libpstoedit0,libpulse-simple0,libpulse0,libqca2,libqhull-devel,libqhull_7,libqjson0,libqqwing2,libqrencode3,libquadmath0,libqzeitgeist1,libreadline7,librest0.7_0,librevenge0.0_0,librsvg2_2,libsasl2_3,libsigsegv2,libSM6,libsmartcols1,libsndfile1,libsoup2.4_1,libsqlite3_0,libssh2_1,libssp0,libstdc++6,libstreamanalyzer0,libstreams0,libsvm-devel,libsvm2,libsybdb5,libtasn1_6,libtdb1,libthai0,libtiff-devel,libtiff6,libtinyxml2_4,libtool,libtxc_dxtn,libunistring2,libusb0,libuuid-devel,libuuid1,libvoikko1,libvorbis,libvorbis0,libvorbisenc2,libvorbisfile3,libvpx-devel,libvpx3,libvtv0,libwebp5,libwebpmux1,libwmf027,libwrap0,libyaml0_2,libzip2,login,lua,lua-devel,lynx,m4,make,man-db,mintty,mysql-common,nano,ncftp,ncurses,netpbm,nfrotz,ninvaders,openexr,openmpi,openssh,openssl,p11-kit,p11-kit-trust,p7zip,patch,peg-e,perl,pkg-config,python3,python38-cairo,python38-cffi,python38-cryptography,python38-dbus,python3-devel,python38-enum34,python38-gi,python38-gi-common,python38-crypto,python38-cython,python38-h5py,python38-ipython,python38-jupyter_core,python38-gobject,python38-numpy,python38-openssl,python38-pip,python38-ply,python38-pyasn1,python38-pycparser,python38-requests,python38-setuptools,python38-sip,python38-six,python38-tkinter,python38-twisted,python38-zope.interface,python3,python38-cffi,python38-devel,python38-imaging,python38-imaging-devel,python38-numpy,python38-ply,python38-pycparser,python38-setuptools,python38-tkinter,python38-zmq,qqwing,rebase,renderproto,robots,rsync,ruby,ruby-devel,ruby-minitest4,ruby-rake,ruby-rdoc,rubygems,run,scrnsaverproto,sed,simsu,sl,sudoku,suomi-malaga,tar,terminfo,terminfo-extra,tetzle,texinfo,tiff,typespeed,tzdata,unzip,util-linux,vim,vim-clang-format,vim-common,vim-minimal,w32api-headers,w32api-runtime,w3m,wget,which,windows-default-manifest,xxd,xz,zip,zlib-devel,zlib0,python38-pylint,python38-pytest,python38-pytest-benchmark,python38-wheel,python38-zmq,libboost_python3-devel,libturbojpeg-devel,byacc

コマンドプロンプトは右クリックだけで貼り付けになる(こともある)。


3.インストールプログラムの操作

ここからは通常のアプリのインストールと同じ。

3-1. ファイル配布元の選択

.jpで終わるサイトを選ぶ方が速い。

libusbでエラーが出るが特に問題ない。

3-2. パッケージの選択 (-Pオプションで指定したものに勝手にチェックが付いている)

上の方法を使ったおかげで選ぶ手間が省ける。

必ず"Select required packages (RECOMMENDED)"をオンにすること(デフォルト) (依存関係の画面は出ずに単にInstall ...とインストールするソフトの一覧が並ぶ画面の場合もある。その場合は「次へ」で良い)

4. 動作確認

4-1. プログラムの存在確認

which nano
which make

それぞれ/usr/bin/nano, /usr/bin/makeと表示されればインストールできている。

4-2. nanoの動作確認

nano HelloWorld.c

でnanoエディタが起動するので

#include <stdio.h>
int main(void)
{
    printf("Hello, world");
    return 0;
}

と入力して,Ctrl+X(終了)を押す(Ctrl+XはControlキーを押しながら"x"を押す意味)。保存するか聞いてくるので Y を押して Enter キーを押す。

4-3. gccの確認

その後ターミナルで

gcc HelloWorld.c -o HelloWorld
./HelloWorld

Hello, worldと表示されれば成功。

他の作業

配布される資料に従って作業する

  • VSCodeのインストール
  • VSCodeでの日本語拡張機能のインストール
  • VSCodeでのC/C++拡張パックのインストール
  • VSCodeでのterminal.integrated.profiles.windowsの設定(Windowsのみ)
  • intellisenseの設定
⚠️ **GitHub.com Fallback** ⚠️