問題タブ [unix-ar]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
979 参照

macos - OS X Yosemite 10.10.1 で GnuPG-2.1.1 をコンパイルしようとしています

最新の GnuPG (2.1.1 modern ) をビルドしようとしているときに、リンクしようとするとビルドが失敗しますt-stringhelpmake出力:

ソースの一部であるため、これを修正する方法がわからないlibcommonため、正常にビルドされるはずです。CFLAGS="-m64"(-arch x86_64何もしない) でビルドすると、次のようになります。

pinentryまた、インストールされているものが見つからないため、を除いて、すべての依存関係を再構築しました(Mavericksで構築したため)libiconv。私のconfigure出力はそのターゲットがDarwin (x86_64-apple-darwin14.0.0)であるため、これは機能するはずです。また、すべての最新の前提条件を取得し、すべてを独自のディレクトリ (--prefix=/usr/local/gnupg-2.1.1) にインストールしようとし、すべての依存関係と GnuPG を 32 ビットとしてビルドします (再び、同じエラーで失敗します)。 )、別のビルドフォルダーを作成してそこにビルドしようとしましたが、これまでのところエラーを解決できたのは1つだけです.ビルド方法を見てくださいlibgpgrl.a-それは唯一のコンポーネントですcommon/gpgrlhelp.c-だから私はcd'edg10でビルドしようとしましたgpg2、 に置き換え../common/libgpgrl.a../common/gpgrlhelp.o、のlib common.a機能しなかったすべてのライブラリのすべてのオブジェクト ファイルを含む。次に、いくつかのプログラムがlibksba libgcryptlibassuanにリンクしていなかったので、リンクできるように Makefile を変更しました。すべてのコードを適切にコンパイルできるようになりました。すべてをインストールしましたが、実行しようとすると新しいエラーが発生しますgpg2

私は自分のパスにすべてを持っています。

Mavericks で GnuPG-2.0.22 をコンパイルできましたが、Yosemite でビルドされる GnuPG のバージョンはありません。

助けてください、私は本当に混乱しています。

0 投票する
1 に答える
67 参照

aix - CC の文書化されていないフラグ

新しいバージョンの Informix-4GL を使用してファイルをコンパイルすると、次のコマンドが起動され、生成されたオブジェクトが実行可能ファイルにリンクされます。

teste未定義のシンボルがあるとエラーになりますが、実行権限はありませんがファイルを生成します。この動作は以前のバージョンとは異なり、make とはうまくいきません。make を 2 回実行すると、1 回目は undef エラーが発生しますが、2 回目は実行可能ファイルが既に存在するため、何もしません。

オプションを外す-bh:8と、以前と同じように機能します (exec ファイルを生成しません)。

このオプション/フラグを知っている人はいます-bh:8か? cc のドキュメントでは見つかりませんでした。

0 投票する
1 に答える
5336 参照

c - C スタティック ライブラリは librt とリンクできません

静的ライブラリを作成する必要があり (動的ライブラリを作成するオプションではありません)、この静的ライブラリにはtimer_createfromなどを使用する関数がありますtime.h

somelib.h:

somelib.c:

コードは実際には無意味であり、次のような私の問題を説明するために librt にリンクする必要があります。

somelib.c をコンパイルした後:

静的ライブラリを作成します。

それに対してリンクすると、次のエラーが発生します。

戻り値:

これは私の問題の最小限の例です。これを修正できるかどうかはわかりませんが、私の理解では、静的ライブラリは作成時にlibrtの場所を知る必要があり、動的であるため、静的ライブラリにリンクしないと不可能であるということでした。 librt のバージョン。それでも私は静的ライブラリをあまり使用しないので、このようなことを行う方法があるかどうか知りたい.

コンパイラのバージョン: gcc 4.8.1 他のフラグは設定されていません。

0 投票する
1 に答える
365 参照

c - 私が書いたライブラリを pthread ライブラリにリンクする

これは実際には割り当ての一部です。基本的に、ライブラリを作成する必要があります。このライブラリは、教授が作成したテスト プログラムにリンクされます。次のようになります。

問題は、libexample が POSIX セマフォを使用しているため、最終的な実行可能ファイルを生成するときに pthread ライブラリとリンクする必要があることです。テスト プログラムのコンパイル方法を変更せずに、pthread ライブラリを libexample.a でパッケージ化する方法はありますか?

ありがとう!

0 投票する
0 に答える
116 参照

haskell - Cabal が詳細な 0.9 テスト スイートのビルドに失敗する

単一のテスト スイートでパッケージをビルドしようとしています。

何が起こるかは次のとおりです。

Haskell Platform 2014.2.0.0 で Windows 8.1 64 ビットを使用しています。MSYS をインストールしましたが、パス上の MinGW は GHC だけです。また、すべての git バイナリはパス上で MSYS と MinGW の後にあるため、競合しません。アドバイスをいただければ幸いです。


更新: を使用すると、ビルド テストが正常に機能するようtype: exitcode-stdio-1.0です。

0 投票する
3 に答える
27620 参照

c - What does the "rcs" option in ar do?

I did read the man file but it does not help. rcs seems to be the most popular option to pass to ar, but the meaning isn't so clear to me.

So c means to create a new archive, but then why use r? which seems to stand for "replace"? What will the s option do to the output?

0 投票する
1 に答える
1633 参照

c++ - C/C++ アーカイブ (.a) 内の関数を表示する方法はありますか?

(簡略化して) 次のような状況があります。

  1. test()に存在するsource.c
  2. source.cにコンパイルしますobject.o
  3. object.oアーカイブにリンクされますarchive.a
  4. archive.a最終的にコンパイルされますbinary

の名前を別のものに変更しようとしtest()ています。ただし、(4) のリンク手順では、新しいメソッド シグネチャが存在しないと述べています。を使用gobjdumpすると、名前が変更された新しいメソッドが存在することが確実にわかりますobject.o(他のメソッドと同じ SECT にあり、UND ではありません)。

object.oが に存在することは確かですarchive.aarchive.aただし、(ビルド システムが複雑なため)メソッドが含まれているかどうかは定かではありません。

TL;DR: アーカイブ ファイルの中を見て、その中の特定のバイナリ オブジェクトの機能を一覧表示する方法はありますか?

0 投票する
2 に答える
108 参照

file - Redirect output to 'file' command

Is there any way to have the file command get it's input from stdin? Specifically, I am trying to get the file type of a file in an archive, and am trying to do it in a single command. I tried this:

but that does not work.