32ビットでプロジェクトをコンパイルすることは可能ですかとcmake
し、gcc
上の64ビット・システム?おそらくそうですが、どうすればよいですか?
パラメータ/フラグなどを設定せずに「無知」な方法で試したところ、LD_LIBRARY_PATH
リンクされたライブラリを見つけるように設定しただけ~/tools/lib
では無視され、名前の付いたサブディレクトリのみが表示されます。 lib64ます。
32ビットでプロジェクトをコンパイルすることは可能ですかとcmake
し、gcc
上の64ビット・システム?おそらくそうですが、どうすればよいですか?
パラメータ/フラグなどを設定せずに「無知」な方法で試したところ、LD_LIBRARY_PATH
リンクされたライブラリを見つけるように設定しただけ~/tools/lib
では無視され、名前の付いたサブディレクトリのみが表示されます。 lib64ます。
回答:
export CFLAGS=-m32
-m32
はCFLAGS
、おそらく設定によってに追加されるだけですCMAKE_REQUIRED_FLAGS
。
export
意味ですか?それはどこに属していますか?Teヘッダーファイル?makefile
?いいえ、まったく初心者としての答えにはなりません。
cmake
(ただし、Makefileがある場合は、make
代わります)。
$ gcc test.c -o testc $ファイルtestc testc:ELF 64ビットLSB実行可能ファイル、x86-64、バージョン1(SYSV)、動的にリンク(共有ライブラリを使用)、GNU / Linux 2.6.9用、ストリップされていない $ ldd testc linux-vdso.so.1 =>(0x00007fff227ff000) libc.so.6 => /lib64/libc.so.6(0x000000391f000000) /lib64/ld-linux-x86-64.so.2(0x000000391ec00000) $ gcc -m32 test.c -o testc $ファイルtestc testc:ELF 32ビットLSB実行可能ファイル、Intel 80386、バージョン1(SYSV)、動的にリンク(共有ライブラリを使用)、GNU / Linux 2.6.9用、ストリップされていない $ ldd testc linux-gate.so.1 =>(0x009aa000) libc.so.6 => /lib/libc.so.6(0x00780000) /lib/ld-linux.so.2(0x0075b000)
つまり、-m32
フラグを使用して32ビットのバイナリをコンパイルします。
また、必要なすべてのライブラリの32ビットバージョンがインストールされていることを確認してください(私の場合、Fedoraで必要なのはglibc-devel.i386だけでした)。
sudo apt-get install gcc-multilib
CMakeの新しいバージョンでは、各ターゲットでそれを行う1つの方法は次のとおりです。
set_target_properties(MyTarget PROPERTIES COMPILE_FLAGS "-m32" LINK_FLAGS "-m32")
私はそれをグローバルに行う方法を知りません。
cmake -D CMAKE_CXX_FLAGS=-m32 . && make
1つの方法は、chroot環境をセットアップすることです。Debianにはそのための多くのツールがあります。たとえば、debootstrap
複雑なアプリケーションの場合は、lxcコンテナーを使用することをお勧めします。lxcコンテナは「ステロイドのchrootと本格的な仮想マシンの中間にあるもの」です。
たとえば、Ubuntu Trustyシステムでlxcを使用して32ビットワインをビルドする方法は次のとおりです。
sudo apt-get install lxc lxc-templates
sudo lxc-create -t ubuntu -n my32bitbox -- --bindhome $LOGNAME -a i386 --release trusty
sudo lxc-start -n my32bitbox
# login as yourself
sudo sh -c "sed s/deb/deb-src/ /etc/apt/sources.list >> /etc/apt/sources.list"
sudo apt-get install devscripts
sudo apt-get build-dep wine1.7
apt-get source wine1.7
cd wine1.7-*
debuild -eDEB_BUILD_OPTIONS="parallel=8" -i -us -uc -b
shutdown -h now # to exit the container
これは、lxcを使用して64ビットのホストで32ビットのwineを構築する方法についてのwikiページです。
atom
64ビットマシンで32ビット用のテキストエディターをコンパイルするために使用できますか?