問題タブ [ld]
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.
c - 自分の OS に NewLib を移植する: いくつかの質問
私は自分の OS に NewLib を移植しようとしています (私はこのチュートリアルに従っています: http://wiki.osdev.org/Porting_Newlib )、いくつか質問があります。
LibGloss が完了してコンパイルされたら、作成された libnosys.a を正確にいつ使用する必要がありますか? main.c をコンパイルするのはいつですか?
/li>私の crt0.c が完了しました。そして、「最初のオブジェクトとしてリンク」する必要があります。どうやってやるの?このようなものですか?
/li>
回答ありがとうございます。
android - 共有ライブラリへのfftw3の静的リンク
私は Android 用のピッチ補正ソフトウェアに取り組んでおり、NDK を使用して Android で fftw3 を動作させたいと考えています。
ピッチ補正ライブラリ (talentedhack、http: //code.google.com/p/talentledhack/) は fftw3 に依存しているため、fftw3 をスタティック ライブラリとしてコンパイルし、それを Talentedhack 共有にリンクしようとしています。図書館。現在、静的ライブラリ libfftw3.a として fftw3 をビルドしていますが、このような未解決の参照エラーが引き続き発生します。
ndk-build を使用して Talenthack 共有ライブラリをコンパイルするとき。ただし、ファイルを正しく取得しているように見えますが、これは不可解です。
Android.mk ファイルの関連部分は次のようになります。
プロジェクトの最上位レベルから ndk-build が呼び出されたときに失敗するコマンドは次のとおりです。
/opt/android-ndk-linux/build/prebuilt/linux-x86/arm-eabi-4.4.0/bin/arm-eabi-gcc -nostdlib -Wl,-soname,libtalentedhack.so -Wl,-shared,-Bsymbolic /path/to/project/bin/ndk/local/armeabi/objs/talentedhack/circular_buffer.o /path/to/project/bin/ndk/local/armeabi/objs/talentedhack/fft.o /path/to/project/bin/ndk/local/armeabi/objs/talentedhack/formant_corrector.o /path/to/project/bin/ndk/local/armeabi/objs/talentedhack/lfo.o /path/to/project/bin/ndk/local/armeabi/objs/talentedhack/pitch_detector.o /path/to/project/bin/ndk/local/armeabi/objs/talentedhack/pitch_shifter.o /path/to/project/bin/ndk/local/armeabi/objs/talentedhack/pitch_smoother.o /path/to/project/bin/ndk/local/armeabi/objs/talentedhack/quantizer.o /path/to/project/ndk/local/armeabi/objs/talentedhack/talentedhack.o -Wl,--whole-archive -Wl,--no-whole-archive /path/to/project/bin/ndk/local/armeabi/libfftw3.a /opt/android-ndk-linux/build/prebuilt/linux-x86/arm-eabi-4.4.0/bin/../lib/gcc/arm-eabi/4.4.0/libgcc.a /opt/android-ndk-linux/build/platforms/android-8/arch-arm/usr/lib/libc.so /opt/android-ndk-linux/build/platforms/android-8/arch-arm/usr/lib/libstdc++.so /opt/android-ndk-linux/build/platforms/android-8/arch-arm/usr/lib/libm.so -Wl,--no-undefined -Wl,-z,noexecstack -L/opt/android-ndk-linux/build/platforms/android-8/arch-arm/usr/lib -llog -Wl,-rpath-link=/opt/android-ndk-linux/build/platforms/android-8/arch-arm/usr/lib -o /path/to/project/bin/ndk/local/armeabi/libtalentedhack.so
システムには実際にはfftwf_executeまたはいくつかの派手なマクロを使用しているため、または静的ライブラリを正しく処理していない Android NDK ビルドシステムの問題である場合、任意のヘッダーで定義された他の関数 (私が知ることができます)。どんな助けでも大歓迎です。
gcc - cross gcc crti.o
powerpc の Cross linuxの手順を最初から実行しましたが、エラーが発生gcc-final
してステージを通過できません。ld
crti.o: no such file or directory
私のツール チェーンは 2 つのディレクトリに分かれて/opt/builder/tools
い/opt/builder/cross-tools
ます。また、リンク/tools
と/cross-tools
それらのディレクトリを作成しました。
試してみたところ、「ライブラリ」セクションに/cross-tools/bin/powerpc-unknown-linux-gcc -print-search-path
ディレクトリがありました。/opt/builder/tools/lib
しかし、gcc はディレクトリ プレフィックスなしでcrt....o
オブジェクトの名前を に渡しますld
(私はそれを見つけるために strace を使用しました)。
crt....o
ファイルをディレクトリにコピーしてhello.c
コンパイルしたところ、すべて問題なかったので、ファイルは良好です。
アドバイスをいただけますか?
前もって感謝します、
セルゲイ・ナウモフ。
gcc - gccに1つのリンカーを別のリンカーの上に使用するように強制します
ld
最近、私はOS Xに取り組んでいます。どういうわけか私のシステムに接続され、現在gcc
は使用されなくなるまで、物事はしばらくの間かなり桃色になりましたdyld
。さらに、私の共有ライブラリはすべて*.dylib
フォーマットされており、ldはその存在を頑固に無視しています。からmv
ldを実行するPATH
と、gccはldが見つからないと文句を言います。
gccを軌道に戻し、本来あるべきものを使用するのを手伝ってください。
c++ - リンク時のC++未定義の参照
私はこれで2日間頭をかいていたので、誰かが私を助けてくれるだろうかと思っています。
私はコンパイルを行い、Linuxでソースコードをリンクしようとすると未定義の参照が取得されます
を使用してコンパイルします。
g ++ -g -I / u01 / kasunt / worksheet / corelibCORBA / include -I / u01 / kasunt / worksheet / corelibCORBA / installed_components / include -I / u01 / kasunt / worksheet / corelibCORBA / idl -I / u01 / kasunt / worksheet / corelibCORBA / src / Server -I / u01 / kasunt /ワークスペース/corelibCORBA/installed_components/idl-I/u01/kasunt/workspace/corelibCORBA/installed_components/src/Server-I/u01/kasunt/workspace/corelibCORBA/installed_components/imake- DNARROWPROTO-I。-I / u01 / kasunt / worksheet / corelibCORBA / installed_components / include -W -Wall -Wpointer-arith -pipe -D_POSIX_THREADS -D_POSIX_THREAD_SAFE_FUNCTIONS -g -O -I / u01 / kasunt / worksheet / corelibCORBA / include -g -O -I / u01 / kasunt / worksheet / corelibCORBA / include -fvisibility = hidden -fvisibility-inlines-hidden -DACE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS = 1 -W -Wall -Wpointer-arith -ggdb -pipe -Wall -g -D__linux__ -D_ = 0 -DTAO_HAS_VALUETYPE = 1 -D_REENTRANT -DACE_HAS_AIO_CALLS -D_GNU_SOURCE -I / usr / local / ACE + TAO + CIAO-5.7.9 / ACE_wrappers -I / usr / local / ACE + TAO + CIAO-5.7.9 / ACE_wrappers / TAO -I / usr / local / ACE + TAO + CIAO-5.7.9 / ACE_wrappers / TAO / orbsvcs -DACE_HAS_EXCEPTIONS -D__ACE_INLINE__ -c -o TestSeqWrapper.o TestSeqWrapper.cppcppcpp
を使用してリンクする
g ++ -o TestSeqWrapper TestSeqWrapper.o -g -L / u01 / kasunt / worksheet / corelibCORBA / lib -L / u01 / kasunt / worksheet / corelibCORBA / installed_components / lib -g -O -Wl、-E -L / usr / local /ACE+TAO+CIAO-5.7.9/ACE_wrappers/lib -L / usr / local / ACE + TAO + CIAO-5.7.9 / ACE_wrappers / lib -L / usr / local / ACE + TAO + CIAO-5.7.9 / ACE_wrappers / TAO / tao -L / u01 / kasunt /ワークスペース/corelibCORBA/installed_components/idl-lcorelibCORBA-lcorelibCORBA/u01/kasunt/workspace/corelibCORBA/installed_components/lib/corelibCORBA3r.lib/u01/kasunt/workspace /lib/CorbaController3r.lib /u01/kasunt/workspace/corelibCORBA/installed_components/lib/EConcurrency3r.lib /u01/kasunt/workspace/corelibCORBA/installed_components/lib/corelibLogger3r.lib /u01/kasunt/workspace/corelibCORBA/installed_components /LeakTracker3r。lib /u01/kasunt/workspace/corelibCORBA/installed_components/lib/trace3r.lib -lDefineTimeZone /u01/kasunt/workspace/corelibCORBA/installed_components/lib/timestamp3r.lib /u01/kasunt/workspace/corelibCORBA/installed_components/lib/Appl lib /u01/kasunt/workspace/corelibCORBA/installed_components/lib/appl3r.lib /u01/kasunt/workspace/corelibCORBA/installed_components/lib/logstream3r.lib /u01/kasunt/workspace/corelibCORBA/installed_components/lib/disklog3r.lib / u01 / kasunt /ワークスペース/corelibCORBA/installed_components/lib/timeout3r.lib/u01/kasunt/workspace/corelibCORBA/installed_components/lib/getpnam3r.lib/u01/kasunt/workspace/corelibCORBA/installed_components/lib/config3r.lib / u01 / kasunt /ワークスペース/corelibCORBA/installed_components/lib/strl3r.lib/u01/kasunt/workspace/corelibCORBA/installed_components/lib/string3r。lib /u01/kasunt/workspace/corelibCORBA/installed_components/lib/command3r.lib /u01/kasunt/workspace/corelibCORBA/installed_components/lib/cmdargs3r.lib /u01/kasunt/workspace/corelibCORBA/installed_components/lib/CppUtils3r.lib u01 / kasunt /ワークスペース/corelibCORBA/installed_components/lib/BuildTag3r.lib/u01/kasunt/workspace/corelibCORBA/installed_components/lib/exception3r.lib -lCorbaIdl -lTAO_Valuetype -lTAO_PortableServer -lTAO_IORTable -lTAO_AnyTypeCode -lTAO_CosEvent -lTAO_CosNaming -lTAO -lACE
ライブラリのnmを実行すると、上記のコンストラクターが含まれていることがわかります。
ソースコードの問題のある行(行165)、SeqWrapper():var_(new SequenceType)、size_(0){}
コードの一部、
TestSeqWrapper.cppのソースコード(混乱を少なくするために、不要なもののほとんどを削除しました)
また、リンクオプション(太字で表示)で共有ライブラリを指定したことがわかります。私は当初、何らかの依存関係が原因である可能性があると考え、ライブラリフラグを最初に移動しても影響はありませんでした。
それは有り難いです。
assembly - gccを使用せずにC標準ライブラリを使用するガスアセンブリプログラムをldとリンクするにはどうすればよいですか?
cプログラムがどのように機能するか、およびプログラムがlibcを使用できるようにするために必要な最小レベルのコンテンツをより正確に学習するための演習として、私は主にgasとldを使用してx86アセンブリでプログラミングを試みることにしました。
楽しい小さな挑戦として、私はさまざまな自作のダイナミックライブラリにリンクされたいくつかのプログラムを正常に組み立ててリンクしましたが、gccを直接使用せずにlibc関数呼び出しを使用するようにプログラムを最初からコーディングすることはできませんでした。
個々のcライブラリ関数の呼び出し規約を理解し、objdumpとreadelfを使用してgccからコンパイルされたプログラムを徹底的に検査しましたが、ガスアセンブリファイルに含める情報と呼び出すパラメーターについてはどこにも到達していません。 ldでlibcに正常にリンクします。誰かがこれについて何か洞察を持っていますか?
x86マシンでLinuxを実行しています。
g++ - LD: STL ライブラリとのリンク
OpenCV の VideoCapture の例をコンパイルしようとしていました。コンパイルすると、次の出力が得られます。
(ちなみに、gpp は g++ -lhighgui -lcv -lcxcore のエイリアスです)
そこで、「gpp --enable-auto-import」でコンパイルしてみましたが、g++ はこのオプションを認識しませんでした。ということで、以下のようにコンパイルしてみました。
そして、同じエラーとSTL関数に関する他の多くのエラーがあり、STLとリンクしていないことを示しています:
そして、最後に、次のようにコンパイルすると:
今回は、STL エラーのみを取得しました。VideoCapture エラーがなくなりました。だから私はこの問題を解決したと思います。唯一のことは、自分のプログラムを ld に STL ライブラリとリンクさせるにはどうすればよいかということです??????
前もって感謝します
gcc - gcc/ld-glibc.2.6の__isoc99_sscanf@@GLIBC_2.7シンボルを使用して新しいlibc.soを作成します
アプリケーションを実行しようとするとエラーが発生します。
しかし、glibc2.7から必要な唯一のシンボルは
このシンボルを__sscanf()のエイリアスとして使用して、小さな単一の関数「ライブラリ」を作成したいと思います。
gcc / ldでこれを行うにはどうすればよいですか?
「@@」記号が原因で、私のバリアントは受け入れられません
2番目に私の変種は
ただし、リンカからの「シンボル__isoc99_sscanf@@GLIBC_2.7のバージョンノードが見つかりません」エラーで終了します。
c++ - C++: コンパイル エラー - 「.eh_frame_hdr テーブルは作成されません」
物理実験用のデータ解析プログラムを使用することになっています。私はそれをコンパイルすることはできません。
コードは古く、私が見つけた現在の GCC バージョンと実際には互換性がありません。もう少し時間がかかるようにするために、Mac でコンパイルできるようにすべての makefile を変更した人からコードを入手しました。私は C++ の経験はありませんが、マンページ、Google、および忍耐力により、途中で多くのエラーを修正しましたが、1 週間の試行とグーグルの後でさえ、これに固執しています。
関連するエラーメッセージは次のとおりだと思います。
何が原因で、何が解決策になるのでしょうか?
libCommandLineInterface.so
明らかなエラーメッセージなしで、以前に私がコンパイルしました:
私の g++ バージョンはg++ (Ubuntu 4.4.3-4ubuntu5) 4.4.3
、amd64 です。
- http://tinypaste.com/9eee9 - 出力を作成
- http://tinypaste.com/ddbde - GNUmakefile
私が言ったように、私は C++ の経験がないので、単純な Makefile の変更が何かを破壊したのかもしれません。また、経験が不足しているため、他にどのような情報が必要なのかよくわかりませんが、喜んで返信します。
oracle - gcc、64 ビット、オラクル、ソラリス
ld
ここで正しく機能しない理由を誰か教えてください
(この長いコマンドはconfigure
、このエラーのために正しく実行されていません)
UPD
blabla.c
:_