• 締切済み

コンパイルでのエラー

コンパイルというものに不慣れながらも行っています。 リンクなどを変えたのですが、次のようなエラーがでます。 ------------------- can't read archive header from archive libdmy.a ------------------- これは、何が悪いのか判断がつきません。 libdmy.aというファイルを作った段階で間違っているのか、それともオプションの設定がおかしいのかわからなく、困っています。 何か解決する方法などはあるでしょうか?

みんなの回答

回答No.3

UNIXだとしても、どのコンパイラ、リンカを使ったか、提示した方が良いでしょう。 libdmy.a を、どの様に作ったのでしょうか。名前から察すると、適当にファイルを作ったとしか 思えません。 たぶん、ファイルは存在するが、アーカイブファイルの形式をしていないとおもいます。 libdmp.aのあるディレクトリにcdして file libdmy.a というコマンドを打鍵してみてください。 この結果をみば、エラー原因は分かるでしょう。

回答No.2

環境: windows, UNIX, その他 言語: C, C++, ... あとは Makefile とかコンパイルを実行しているコマンドなど・・・

回答No.1

なんという言語をどの様な環境でコンパイルしているのか、もっと詳しく!!

koyama-30
質問者

補足

何分説明不足で申し訳ありません。 環境は、UNIXです。また、言語については、Fortran90をサポートしていて、C/C++も利用できます。 コンパイルの際には、クロスコンパイラーを起動しています。 これで足りてるでしょうか?

関連するQ&A

  • DirectX8でコンパイルエラー

    DirectX8実践プログラミングという本についてくるサンプルプログラムを コンパイルしようとしているのですが、 sprite.obj : error LNK2001: 外部シンボル "_D3DXCreateSprite@8" は未解決です sprite.obj : error LNK2001: 外部シンボル "_D3DXCreateTextureFromFileA@12" は未解決です sprite.obj : error LNK2001: 外部シンボル "_Direct3DCreate8@4" は未解決です .\Debug/spriteanimate.exe : fatal error LNK1120: 外部参照 3 が未解決です。 link.exe の実行エラー となってしまいます。DirectXを使っての勉強をはじめたばかりなのですが いきなりつまってしまいました。 おそらくライブラリが見つからないのかと思うのですが ライブラリのディレクトリ設定でC:\mssdk\libも追加されていました。 DirectX8SDKについてくるサンプルはコンパイル出来るのですが どういう理由が考えられるでしょうか?

  • Xcodeでコンパイルエラーが出たときの調べ方

    iPhone向けのメーラーを作ってみようと思い、LibEtPan というライブラリをGitHubから ダウンロードして、以下のURLにある pop-sample.c のサンプルコードを使ってみたところ エラーが出ました。 結論からいうとエラーメッセージをそのままネットで調べて、とりあえずコンパイルエラーは 発生しなくなり、無事、ライブラリを使う事はできたのですが、なぜ動くようになったのか、 今のコンパイルエラーが出ていない状態がはたして正しいのかがわかっておりません。 以下、エラー発生までのプロセスです。 1、新規でiPhone向けプロジェクトを作成 2、libEtPanをサブプロジェクトとして追加 3、libetpan-ios.a をLinkに追加 4、Other Linker Flagsに -lsasl2 を設定 5、pop-sample.cのサンプルコードをコピー (サンプルコード内にあるファイル書き込みの処理はコンソールにメール内容を表示する処理に置き換えた) 手順3と4は以下GitHubのREADMEに書いてある手順です。 https://github.com/dinhviethoa/libetpan この状態でビルドすると、以下のようなエラーが発生しました。 Undefined symbols for architecture i386: "_SecCertificateCopyData", referenced from: _mailstream_low_cfstream_get_certificate_chain in libetpan-ios.a(mailstream_cfstream.o) "_deflate", referenced from: _mailstream_low_compress_write in libetpan-ios.a(mailstream_compress.o) "_deflateEnd", referenced from: _mailstream_low_compress_open in libetpan-ios.a(mailstream_compress.o) _mailstream_low_compress_free in libetpan-ios.a(mailstream_compress.o) "_deflateInit2_", referenced from: _mailstream_low_compress_open in libetpan-ios.a(mailstream_compress.o) "_inflate", referenced from: _mailstream_low_compress_read in libetpan-ios.a(mailstream_compress.o) "_inflateEnd", referenced from: _mailstream_low_compress_open in libetpan-ios.a(mailstream_compress.o) _mailstream_low_compress_free in libetpan-ios.a(mailstream_compress.o) "_inflateInit2_", referenced from: _mailstream_low_compress_open in libetpan-ios.a(mailstream_compress.o) "_kCFStreamPropertySSLPeerCertificates", referenced from: _mailstream_cfstream_set_ssl_enabled in libetpan-ios.a(mailstream_cfstream.o) _mailstream_low_cfstream_get_certificate_chain in libetpan-ios.a(mailstream_cfstream.o) "_kCFStreamPropertySSLSettings", referenced from: _mailstream_cfstream_set_ssl_enabled in libetpan-ios.a(mailstream_cfstream.o) "_kCFStreamSSLAllowsAnyRoot", referenced from: _mailstream_cfstream_set_ssl_enabled in libetpan-ios.a(mailstream_cfstream.o) "_kCFStreamSSLAllowsExpiredCertificates", referenced from: _mailstream_cfstream_set_ssl_enabled in libetpan-ios.a(mailstream_cfstream.o) "_kCFStreamSSLAllowsExpiredRoots", referenced from: _mailstream_cfstream_set_ssl_enabled in libetpan-ios.a(mailstream_cfstream.o) "_kCFStreamSSLLevel", referenced from: _mailstream_cfstream_set_ssl_enabled in libetpan-ios.a(mailstream_cfstream.o) "_kCFStreamSSLValidatesCertificateChain", referenced from: _mailstream_cfstream_set_ssl_enabled in libetpan-ios.a(mailstream_cfstream.o) ld: symbol(s) not found for architecture i386 clang: error: linker command failed with exit code 1 (use -v to see invocation) そこで、上記のエラーメッセージをネットで検索し、結果的には以下のことをすることで、コンパイルエラーが 解消しました。 ・CFNetwork.framework と Security.framework のLink追加 ・Other Linker Flags に -lz の追加 そこで、質問ですが、熟練したプログラマは、上記のようなエラーが出たとき、 そのエラーメッセージからどういう情報を読み取り、どのようなプロセスで問題を 解決するのでしょうか? 私は、上記のエラーメッセージを見ても「Undefined symbols」というメッセージから 何かライブラリが足りないのかな?程度しか情報を読み取る事ができませんでした。 以上、よろしくお願いします。

  • c#コンパイル時のエラー

    こんばんわ。全くの初心者ですので、よろしくお願いします。 現在、.NET SDKをインストールして、c#でプログラムを作ってみました。 コマンドコンソールウィンドウでcscコマンドでコンパイルしようとしましたところ次のようなエラーが出てコンパイルできません。 「プログラム'***.exe'のエントリポイントが定義されていません。」 これはどういうエラーなのでしょうか。また、どうすれば解決するのでしょうか。 教えていただきたいと思っております。よろしくお願いします。

  • word 2010でコンパイルエラー

     word 2010でコンパイルエラーが発生します。ヘルプには次のメッセージが出ます。対処方法教えてください。 非表示モジュール <モジュール名> 内でコンパイルエラーが発生しました。 アプリケーション情報 保護されているモジュールにコンパイル エラーがあります。このエラーは、保護されているモジュール内にあるため、表示できません。 このエラーは一般に、実行中のアプリケーションのバージョンまたはアーキテクチャにコードが対応していない場合に発生します (32 ビット版の Microsoft Office アプリケーションを対象としているドキュメント内のコードを 64 ビット版の Office で実行しようとした場合など)。 このエラーの原因と解決方法は次のとおりです。 エラーの原因: このエラーは、VBA コード中の保護されている (非表示) モジュール内にコンパイル エラーがある場合に発生します。該当モジュールが保護されているため、問題となっているコンパイル エラー自体は明示されません。 解決策: ドキュメントまたはプロジェクト内の VBA コードにアクセスできる場合は、該当するモジュールの保護を解除してコードを再実行し、問題となっているエラーを確認します。 ドキュメント内の VBA コードにアクセスできない場合は、ドキュメントの作成者に問い合わせ、非表示モジュール内のコードを更新するように依頼してください。

  • Linux上のコンパイルについて

    ただいま、Linuxを使って、fortranを動かしております。 そこで、エラーとして、'relocation truncated to fit: R_X86_64_PC32 against `.bss' 'というエラーが発生しました。 解決方法を調べたところ、コンパイルオプションに'shared-intel -mcmodel=large'という文字を付け足せばいいということはわかったのですが、肝心のコンパイルオプションがLinux上のどこにあるのかわかりません。 ご教授願えればと思います。

  • gcc lcrt1.o コンパイルエラー mac xcode

    Mac OS X 10.3.9のXcode 300.0上で、UNIX上で動作するC言語プログラムの開発を行っています。 デバッガ上で、エラーや警告が最後まで、一つだけ消えずに、コンパイルできません。デバッガ上のエラーは「control reaches end of non-void function」、ターミナル上から、gccでコンパイルすると、「can't locate file for: -lcrt1.o」というエラーです。 解決法をご教示ください。

  • HEWでのコンパイルエラー

    とある人に頂いたH8Sデバッグボードを動作させるためのサンプルHEWプロジェクトをコンパイルしたところ次のエラーが出てしまいます…。 License has expired. Maximum link size limited to 64KB code+data. L3430 (F) The total section size exceeded the limit このエラーの意味を、Google先生に色々尋ねてはみたのですが答えが出てきませんでした。もちろんH8S C/C++コンパイラマニュアルも調べました。 無償評価版のHEWを使っているので「合計リンクサイズが64KBを超えてますよ」というエラーなのでしょうか?? どなたかこのエラーの意味をご存知の方がおられましたらご回答願います。

  • BIND-9.6.1-P1でコンパイルエラー

    先日、BINDでセキュリティの脆弱性が発見されたため、バージョンアップを行おうと、BIND-9.6.1-P1のsourceをISCからDownloadしてきました。で、展開後に./configure、makeとしたところ、lib/dns/genを作成するところで、Segmentation違反(signal 11)でエラーが発生し、コンパイルが完了できませんでした。 以前、正しくコンパイルされたはずのBIND-9.5.0-P1を改めてコンパイルしてみたところ、こちらも同じ場所でエラーになります。調べてみたところ、コンパイルだけなら問題なく実行されるのですが、ldを使用してリンクする箇所にくると、エラーとなってしまうようです。(gen moduleを以前、コンパイルしたもので置いて強制的に先に進めたところ、次のリンクで同様にエラー・・・) ldが壊れたのかと思い、Hello,C world!をコンパイルしてみたところ、問題なく実行moduleが生成されます。じゃあ、ライブラリが壊れているのかと思い、rpm -qsコマンドで、以下のパッケージを検査しましたが、問題ない(通常)と返って来ます。 rpm -qs binutils-2.15.92.0.2-5vl2 rpm -qs glibc-2.3.4-2vl3 環境はVineLinux4.2、カーネル版数は2.6.16-0vl68を使用しています。これ以上、調べる対象が思いつかず、なにかヒントだけでも頂けないでしょうか。(ちなみに、BINDの脆弱性は、仕方なく対処版のrpmを持ってきてインストール。問題なく動作しています)

  • コンパイルエラーの対処がわかりません。

     初心者です。エクセルのマクロで次のようなコードを書いたとき(2)のif文のところで 「コンパイルエラー:メソッドまたはデータメンバが見つかりません」 と表示されます。  Dim A As Worksheet   Set A = Worksheets(1)    If Sheets(1).CheckBox1 = True Then   '(1)     Range("A1") = 1    End If    If A.CheckBox1 = True Then       '(2)     Range("B1") = 1    End If  どちらも同じ意味だと思っているのですが、なぜ(2)ではエラーと なるのかわかりません。詳しい方、ご教示願います。

  • Fortran コンパイルエラー

    Cygwin上でFortranを用いて流体の数値解析を行っています。 先輩から引き継いだシミュレーションコードなのでプログラムをいじらなくても実行できるだろうと思ったのですが、コンパイル時に以下のエラーが出てしまい、いろいろ試行錯誤しましたが自力では解決できませんでした。 エラーは次のとおりです。何かご存知の方アドバイス頂けたらありがたいです。○はスペースです。カンマの下に1があります。 op.f:13.21: ○101 format(i,4e) ○○○○○○1      Error:Nonnegative width reqired in format string at (1)