質問: 1 configure: failed program was: | /* confdefs.h. */ | | #define package_name "" | #define package_tarname "" | #define package_version "" | #define package_string "" | #define package_bugreport "" | #define package "wol" | #define version "0.7.1" | #define package "wol" | #define version "0.7.1" | #define _gnu_source 1 | /* end confdefs.h. */ | | int | main () | { | | ; | return 0; | } configure:2263: error: c compiler cannot create executables see `config.log' for more details. ## ---------------- ## ## cache variables. ## ## ---------------- ## ac_cv_build=x86_64-unknown-cygwin ac_cv_build_alias=x86_64-unknown-cygwin ac_cv_env_cc_set= ac_cv_env_cc_value= ac_cv_env_cflags_set= ac_cv_env_cflags_value= ac_cv_env_cppflags_set= ac_cv_env_cppflags_value= ac_cv_env_cpp_set= ac_cv_env_cpp_value= ac_cv_env_ldflags_set= ac_cv_env_ldflags_value= ac_cv_env_build_alias_set= ac_cv_env_build_alias_value= ac_cv_env_host_alias_set= ac_cv_env_host_alias_value= ac_cv_env_target_alias_set= ac_cv_env_target_alias_value= ac_cv_host=x86_64-unknown-cygwin ac_cv_host_alias=x86_64-unknown-cygwin ac_cv_path_install='/usr/bin/install -c' ac_cv_prog_awk=gawk ac_cv_prog_ac_ct_cc=gcc ac_cv_prog_make_make_set=yes ## ----------------- ## ## output variables. ## ## ----------------- ## aclocal='${shell} /cygdrive/h/temporal/wol/wol-0.7.1/missing --run aclocal-1.7' alloca='' amdepbackslash='\' amdep_false='#' amdep_true='' amtar='${shell} /cygdrive/h/temporal/wol/wol-0.7.1/missing --run tar' autoconf='${shell} /cygdrive/h/temporal/wol/wol-0.7.1/missing --run autoconf' autoheader='${shell} /cygdrive/h/temporal/wol/wol-0.7.1/missing --run autoheader' automake='${shell} /cygdrive/h/temporal/wol/wol-0.7.1/missing --run automake-1.7' awk='gawk' build_included_libintl='' catobjext='' cc='gcc' ccdepmode='' cflags='' cpp='' cppflags='' cygpath_w='cygpath -w' datadirname='' defs='' depdir='.deps' echo_c='' echo_n='-n' echo_t='' egrep='' exeext='' extra_libs='' gencat='' glibc21='' gmsgfmt='' have_asprintf='' have_posix_printf='' have_snprintf='' have_wprintf='' install_data='${install} -m 644' install_program='${install}' install_script='${install}' install_strip_program='${shell} $(install_sh) -c -s' instobjext='' intlbison='' intllibs='' intlobjs='' intl_libtool_suffix_prefix='' ldflags='' libiconv='' libintl='' libobjs='' libs='' ln_s='' ltlibiconv='' ltlibintl='' ltlibobjs='' makeinfo='${shell} /cygdrive/h/temporal/wol/wol-0.7.1/missing --run makeinfo' mkinstalldirs='' msgfmt='' msgmerge='' objext='' p2m='' package='wol' package_bugreport='' package_name='' package_string='' package_tarname='' package_version='' path_separator=':' perl='' pod2texi_false='' pod2texi_true='' posub='' ranlib='' sed='' set_make='' shell='/bin/sh' strip='' use_included_libintl='' use_nls='' version='0.7.1' xgettext='' ac_ct_cc='gcc' ac_ct_ranlib='' ac_ct_strip='' am__fastdepcc_false='' am__fastdepcc_true='' am__include='include' am__leading_dot='.' am__quote='' bindir='${exec_prefix}/bin' build='x86_64-unknown-cygwin' build_alias='' build_cpu='x86_64' build_os='cygwin' build_vendor='unknown' datadir='${prefix}/share' exec_prefix='none' host='x86_64-unknown-cygwin' host_alias='' host_cpu='x86_64' host_os='cygwin' host_vendor='unknown' includedir='${prefix}/include' infodir='${prefix}/info' install_sh='/cygdrive/h/temporal/wol/wol-0.7.1/install-sh' libdir='${exec_prefix}/lib' libexecdir='${exec_prefix}/libexec' localstatedir='${prefix}/var' mandir='${prefix}/man' oldincludedir='/usr/include' prefix='none' program_transform_name='s,x,x,' sbindir='${exec_prefix}/sbin' sharedstatedir='${prefix}/com' sysconfdir='${prefix}/etc' target_alias='' ## ----------- ## ## confdefs.h. ## ## ----------- ## #define package "wol" #define package "wol" #define package_bugreport "" #define package_name "" #define package_string "" #define package_tarname "" #define package_version "" #define version "0.7.1" #define version "0.7.1" #define _gnu_source 1 configure: exit 77 これは、64ビットプラットフォームで32ビットプログラムをコンパイルするときに予想される問題を報告しているようです。これを解決することは可能ですか? gccコンパイラでフラグ「-m32」を使用する方法、またはコンパイル前にいくつかの変数を送信する(エクスポートする)ことに関する情報を読みましたが、問題はコンパイルではなく構成部分にあるようです。順序は次のようです。 。構成、設定 make チェックする インストールする きれいにする そして最初のステップは失敗します:-(。 とにかく、私は試しました:export cflags='-m32' export cxxflags='-m32' export ldflags='-m32' しかし、./configureスクリプトは失敗し続けます。そして、ちなみに、私はエラーを無視してコンパイルを続行しようとしました(2番目のステップ):make ただし、no objective specified and no makefile foundのようなエラーメッセージレポートが表示されます(申し訳ありませんが、私のcygwinはスペイン語のようです)。この問題を解決することで、cygwin64で32ビットプログラムをコンパイルする方法を学ぶことができると思います。 助けをお願いします。追伸:このツールにはwin32バージョンがダウンロード可能であり、lanでウェイクするための別のプログラムがあることを私は知っています。しかし、物事を解決するためのその方法での学習はどこにありますか?編集:cygwinに次のパッケージ名をインストールしました:gcc-core gdb make mingw-gcc-core mingw-gcc-g++ mingw-w32api 編集-2:cygwin 64ビットをアンインストールし、32ビットバージョンをインストールすることで、1日を節約しました。これはすべてスムーズでうまくいきました。
回答: 前の答えをより安定して信頼できるものにするために(私はまだコメントできません)、これは公式の答えです: https://cygwin.com/ml/cygwin/2017-02/msg00038.html 「q:少なくとも、「gcc -m32」は、「32ビットアーキテクチャを使用する現在のabi環境(cygwin64)で実行可能ファイルを作成する」ことを意味すると解釈できるようです。a:いいえ、実際にはできません。 -m32は、gccドキュメントに記載されていることを実行します。gccに32ビットx86コードを生成させます。そのようなコードが特定のabi環境で実際に機能することを示唆するほど、そこには何もありません。 cygwin64の場合はそうではありません。q:32ビットでコンパイルされたcygwinプログラムをcygwin64 'で実行するにはどうすればよいですか?a:できません。他の誰もできません。 cygwin64ベースのプログラムの場合、cygwin32は、同じプラットフォームのサブセットではなく、真正なクロスコンパイルプラットフォームです。同じことが当てはまります。」