問題タブ [nm]

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 投票する
1 に答える
564 参照

mysql - mysql n:m relationship delete query 1242 サブクエリが複数の行を返す

「products」と「tags」という 2 つの SQL テーブルがあります。3 番目のテーブル「product_tags」を使用して、n:m の関係があります。

一部の商品と対応するタグをまとめて削除したい。

たとえば、products.product_id=3 があり、その製品には tags.tag_id=3、tags.tag_id=5 があるとします。

product_tags テーブル

product_id 3 tag_id 3
product_id 3 tag_id 5

どちらかが生み出す

では、どうすればこれを達成できますか?

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

c - 静的ライブラリをリンクするときに、typedef 構造によって名前の競合が発生する可能性はありますか?

スタティック ライブラリを作成する場合、typedef 構造によって名前の競合が発生する可能性はありますか?

以下のヘッダー ファイルの例を考えると、それmyFun()は外部シンボルになり、関数を含む他のライブラリと競合する可能性があることを理解していmyFun()ます。これを回避するにはmyFun()、より長く具体的な名前を付けることをお勧めします。

myStruct外部シンボルは、別のライブラリとリンクするときに名前の衝突を引き起こす可能性がありますか?

.aまた、スタティック ライブラリ ファイルをで見ると、リストに表示されないのはなぜnm myLib.aですか?

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

solaris - シンボルが見つかりません(ldd)が、そこにあります(nm)

私のアプリケーションは、シンボルが見つからないと文句を言います:

そしてlddは同じことを言います:

ただし、シンボルはそこにあります-それが nm の言うことです:

しかし、ご覧のとおり、Shndx=UNDEF です。どういう意味ですか?何かが定義されていない場合、それはまったく存在しないと思いました。しかし、私のアプリケーションはそれを見つけることができませんが、どういうわけかそこにあります。

システム: Solaris 10 / UltraSPARC 私のアプリケーションとすべてのライブラリは 64 ビットで、/foo は LD_LIBRARY_PATH_64 にあります (/bar はありません)。

編集:一方、UNDEFは「別のライブラリで解決する必要がある」ようなものであることを知っています。また、シンボル _ 1cDstdEcerrを実際に持つライブラリも見つけました。これは /usr/lib にある libCstd.so です。または、より正確に言うと (64 ビット版が必要なので) /usr/lib/64. そのため、crle によって表示されるシステムのデフォルトのライブラリ検索パスの 1 つにあります。ここでの問題は、それを含むライブラリがシステムの検索パスにある場合、どのようにしてシンボルを解決できないのでしょうか?

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

linux - ld リンカーで使用できるすべてのシンボルを一覧表示する

私は (linux) gcc 4.8.2 でコンパイルされた小さな静的ライブラリを -fvisibility=hidden で共有ライブラリにリンクしています (C コードの gcc と Fortran コードの ifort の 2 つのバージョンがあります)。スタティック ライブラリは、いくつかの内部関数で構成されており、すべて "ST_LIB_" という接頭辞が付いています。

静的ライブラリで宣言された関数が、共有ライブラリにリンクされている実行可能ファイル/ライブラリで使用できないことを確認したいと思います。Linux で、プレフィックスを持つ関数が外部ライブラリで使用できないことを確認するための最適なコマンドは何ですか?

私が試してみました:

nm --dynamic shared_lib | grep -i "ST_LIB_" | wc -l(出力 0)

readelf -d shared_lib | grep -i "ST_LIB_" | wc -l(出力 0)

nm -g shared_lib | grep -i "ST_LIB_" | wc -l(共有ライブラリに応じて 26 または 0 を出力)

readelf -s shared_lib | grep -i "ST_LIB_" | wc -l(共有ライブラリに応じて 26 または 0 を出力)

readelf -Ws shared_lib | grep -i "ST_LIB_" | grep -i "HIDDEN" | wc -l(共有ライブラリに応じて 26 または 0 を出力)

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

c++ - 与えられたシンボルを定義するライブラリの名前を出力します

シンボルの名前 (デマングルされているかどうか) と、他のライブラリに動的にリンクされているライブラリの名前があると仮定すると、そのシンボルを解決できるライブラリを見つけたいとします。

を使用しようとしましたが、nmそれに関する適切なドキュメントが見つかりません。このツールでは使用できないようです。objdumpreadelf

gdb似たようなものを提供していますが、これはデバッガーです。簡単なルックアップが必要です。デバッグ セッションを起動せずにこれを行う方法を知っていますか?

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

xslt-2.0 - java.lang.RuntimeException: 認識されない XSLTC 拡張子 'http://saxon.sf.net/:assign'

java.lang.RuntimeException: Unrecognized XSLTC extension 'http://saxon.sf.net/:assign'Javaを介してxslコードを実行すると、取得し続けます。xsl 宣言は次のとおりです。

フローが for-each ループに入るたびに、Saxon を使用して変数をインクリメントしようとしています。