lubuntuで作成したa.outを相手先のLinuxMintで動かしたらエラーになり動きません。
もちろん、a.outを作成した元となる xxx.c を相手先のLinuxMintにコピーしてそこで
gcc xxx.c
を実行してできたa.outは、LinuxMintで正常に動作します。
やりたいことは、手元のlubuntuで相手先のLinuxMintで正常に動く a.out を作成することです。
コンパイルするときのオプション指定で、他のLinuxでも動くa.outの作り方あるのでしょうか?
ちなみに、xxx.c の中で使用しているライブラリ(?)は、
#include <stdio.h>
#include <string.h>
#include <ctype.h>
だけです
No.3ベストアンサー
- 回答日時:
発生するエラーのご提示がないため状況の詳細が不明ですが、多くはWindowsで言うダイナミックリンクライブラリに相当する動的リンクライブラリ(.so.x)ファイルが「見つからない。
」や「バージョンが気に入らない。」などのエラーと思われます。エラーの発生を防ぐためには(.so.x)ファイルの参照を止めてしまう以外にないと思います。
gccをご使用ならコンパイル時に...
-static
オプションを指定します。同様なオプションは幾種類かありますのでgccのマニュアルでご確認ください。
ここでは次の例で違いを示してみます。
#include <stdio.h>
#include <stdlib.h>
int main ( void )
{
printf ( "HelloWorld\n" );
return ( 0 );
}
"test.cpp" 13L, 108B 書込み
% g++ test.cpp
% ls -l
合計 20K
-rwxr-xr-x 1 T_Kaneko kaneko 16K 2月 14 11:39 a.out*
-rw-r--r-- 1 T_Kaneko kaneko 108 2月 14 11:37 test.cpp
% ./a.out
HelloWorld
%
%
この実行ファイルが参照する動的ライブラリは以下のとおりです。
% ldd ./a.out
linux-vdso.so.1 (0x00007ffd87ffe000)
libstdc++.so.6 => /usr/GNU/gcc-10.1.0/lib/../lib64/libstdc++.so.6 (0x00007fd8cdb2a000)
libm.so.6 => /usr/lib/x86_64-linux-gnu/libm.so.6 (0x00007fd8cd9e6000)
libgcc_s.so.1 => /usr/GNU/gcc-10.1.0/lib/../lib64/libgcc_s.so.1 (0x00007fd8cd9ca000)
libc.so.6 => /usr/lib/x86_64-linux-gnu/libc.so.6 (0x00007fd8cd7f6000)
/lib64/ld-linux-x86-64.so.2 (0x00007fd8cdd01000)
%
%
%
%
%
今度はstaticライブラリを指定します。
% g++ -static test.cpp
% ls -l
合計 980K
-rwxr-xr-x 1 T_Kaneko kaneko 976K 2月 14 11:38 a.out*
-rw-r--r-- 1 T_Kaneko kaneko 108 2月 14 11:37 test.cpp
実行ファイルのサイズの違いにご注意を!
./a.out
HelloWorld
% ldd ./a.out
動的実行ファイルではありません
%
以下の点にご注意ください。
●アプリやライブラリインストール時、多くの場合ダイナミックリンクライブラリ(.so.x)ファイルだけがインストールされるようです。少なくとも私の環境(debian)ではそうです。
コンパイル時staticライブラリ"libB.a"ファイルが見つからずにエラーが発生する時は、各OSのリポジトリの中で"libB.a"で検索したりすることで足りないソフトウエアを注意深く探します。
●Xwindowに関係するライブラリなどではさらに複雑になります。
ある程度慣れることが必要です。
回答ありがとうございます
gcc -static
で作成したa.outを相手先のLinuxMintで動かしたら正常に動きました
助かりました!
No.2
- 回答日時:
共有ライブラリを使っているからだろうと思いますが、そうでないオプション類を忘れました。
回答ありがとうございます。
No3さんの回答の通り
gcc -static
で作成したa.outを相手先のLinuxMintで動かしたら正常に動きました
ありがとうございました
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルVBAでOUT LOOKメールに件名を入れたい 1 2023/10/05 13:29
- ビデオカード・サウンドカード 通常でLINE OUT端子から音を出したい 4 2022/08/04 22:07
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- 英語 現在完了進行形が「絶え間なく~し続ける」という意味にならない場合の有無について 3 2023/12/19 10:14
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- 英語 The bicycle became part of a grassroots recreation 1 2023/02/08 15:50
- ルーター・ネットワーク機器 YAMAHAルータ設定について 1 2022/09/03 16:31
- TOEFL・TOEIC・英語検定 英文和訳です 2 2023/07/18 16:28
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
ファイルサイズが小さくなりません(Linux nasm)
UNIX・Linux
-
Linuxでの開発環境構築や設定のコツ
C言語・C++・C#
-
ものづくりに向いているプログラミング言語ってなんですか?家電にもプログラミングが使われてるとか
その他(プログラミング・Web制作)
-
-
4
WindowsのCapsLock(キャップスロック)って、何の意味があるんですか?
C言語・C++・C#
-
5
Ubuntuで数字だけのユーザーアカウントログインについて
UNIX・Linux
-
6
C言語をコンパイルするとコンピュータ上でどう動くかというコードになるみたいな説明をよく聞くのですがこ
C言語・C++・C#
-
7
ubuntu(linux)のシャットダウンが進まず、途中で止まってしまう(シャットダウンできない)
UNIX・Linux
-
8
Javaって使いますか、もう古いですか?C++とどっちがいいですか?分析でC++使う授業ありましたけ
C言語・C++・C#
-
9
Linux のシェルスクリプトの強制終了の仕方について
UNIX・Linux
-
10
バッファリングについて。
C言語・C++・C#
-
11
gcc13.2のバグ?
C言語・C++・C#
-
12
これの対応OSを教えて下さい。php-8.3.0-src.zip
PHP
-
13
LinuxカーネルのCFSで用いられているような
C言語・C++・C#
-
14
古いiMacにLinuxをインストールしたいと思います。 LinuxをインストールするとこれまでのM
UNIX・Linux
-
15
MACで動く実行ファイルをWindowsで作る方法(クロスコンパイラ紹介ください)
C言語・C++・C#
-
16
プログラムの素朴な質問です 分岐するコードを書く時に、 /** * 関数 */ sub(){ ...
その他(プログラミング・Web制作)
-
17
C言語の関数と配列に関する質問
C言語・C++・C#
-
18
ホワイトハッカー
その他(プログラミング・Web制作)
-
19
double型が正常に認識されていない恐れ
C言語・C++・C#
-
20
質問失礼します。 プログラム言語を一つも知らないのですが、C♯の勉強をしてみたいです。おすすめの教材
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAを何回も作り直して、容量が...
-
1 つ以上の複数回定義されてい...
-
<math.h>があるのにsqrtが・...
-
C言語でヘッダファイルにグロー...
-
エクセルVBAではRound...
-
ILSpyで、デコンパイルできない。
-
LNK1210が出て困っています。
-
コンパイル??
-
不要な #include
-
OpenCVを Borland C++ Builder...
-
” OS ビルド ” の意味が分か...
-
クリティカルエラー Expressio...
-
逆コンパイル??
-
うまくコンパイルできません
-
C言語でmからnまでの合計を求め...
-
ビルドとリビルドの違いを教え...
-
Win7 64bit のPCが'X86'と誤認識?
-
CImageクラスの使用について
-
C/C++の文法チェックツール
-
デコンパイル?について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
” OS ビルド ” の意味が分か...
-
VBAを何回も作り直して、容量が...
-
「fatal error C1189」を回避す...
-
C言語でヘッダファイルにグロー...
-
Makefile作成時の拡張子.oとは?
-
エクセルVBAではRound...
-
1 つ以上の複数回定義されてい...
-
コンパイルエラー:ユーザ定義...
-
セミコロンについて
-
ILSpyで、デコンパイルできない。
-
[c++] <pthread.h>がinclude で...
-
クリティカルエラー Expressio...
-
マクロ コンパイルがグレーバック
-
PRO*C コンパイルエラー
-
外部シンボル "_main"は未解決です
-
他のLinuxでも動くa.outの作り方
-
<math.h>があるのにsqrtが・...
-
戻り値について
-
pyc 編集 閲覧
-
C++コンパイル時に『 C1083: in...
おすすめ情報