問題タブ [undefined-symbol]
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.
linux - 明示的なリンクがあっても未定義のシンボル
過去 1 日間リンカー地獄を扱っていたので、これを捨てて、誰かが私を助けてくれるかどうかを確認しようと考えました。
私が構築している共有ライブラリが 2 つあります。1 つは "libhttp" と呼ばれ、http プロトコル用のヘルパー関数をいくつか持っています。2 つ目は「libvpcutil」と呼ばれ、問題を引き起こしています。libhttp にあるシンボルに依存するので、libhttp に対してリンクします。これは、生成された openssl への個人的なパスなどのマイナーなものを含むコンパイル ディレクティブ (make ファイルから展開) です。
コンパイルとリンクが正常に完了します。http/libhttp.so.1.0 へのリンク手順に注意していただければ幸いです。
ここで、libhttp.so.1.0 で nm を実行すると、(とりわけ) 次の出力が得られます。
しかし、libvpcutil.so.1.0 で nm を実行すると、基本的に次のようになります。
私は明らかにここを切り取っていますが、ここで立ち往生しているのは、シンボルが libhttp で明確に定義されていることです。libvpcutil に対してリンクしますが、シンボルは libvpcutil で未定義です。これにより、実行時エラーが発生します。
誰もが問題を見ますか?
xcode - Xcode プロジェクトにファイルを追加するには? (Unity プラグインの作成)
私の問題は非常に基本的なものだと思います。私は Unity で作業しており、iOS プロジェクト用の既製のプラグインを使用しているため、Xcode の経験があまりないので、申し訳ありませんが、今まで Xcode を深く掘り下げる必要はありませんでした。
非常に基本的なカスタム プラグインを作成したいのですが、Xcode でそれを受け入れることができません。Unity ページにあるチュートリアルに従い、.h ファイルと .m ファイルを Assets / Plugins / iOS に追加しました。(チュートリアルで述べられているように) それらは Xcode に自動的にマージされます。
ビルド後、Xcode は次の 2 つのエラーをスローします。
ここで同様の問題を読んだように、これは、ファイルが自動的に追加される必要があるという事実にもかかわらず、ファイルが Xcode プロジェクトに追加されないためです。Xcode では、Project Navigator で両方のファイルを確認できます。Build Phases リストにも .mm ファイルが表示されます。
どうしたの?
c++ - Cython:基本クラスの純粋仮想メソッドを使用したC++共有ライブラリと未定義のシンボル
g ++と-fPICを使用して(Eclipseを使用して).soC++ライブラリを構築します。
まだEclipseを使用しているので、このライブラリをリンクして、別のC++プロジェクトで問題なく使用しました。
しかし、同じlibを使用してCythonプロジェクトをビルドし、Python拡張機能を生成する場合、次を使用します。
「libelp.so」は言及されたライブラリであり、ビルドも問題ありません。cyelp.soライブラリを取得します。
この問題は、実行時にPythonサイドスクリプトからライブラリから特定のクラスを取得すると発生します。
これが私のcythonクラスです(メソッドFireEvent()を実装するALabSimulationTime:LabSimulationTimeクラスから継承します-LabSimulationTimeで「純粋な仮想」として宣言されているメソッド):
そしてここで、私のPythonロードの試み:
最後に、エラーメッセージは次のとおりです。
実際には、ヘッダーファイルからALabSimulatorTimeクラスの「FireEvent()」メソッドを再定義しても発生しません。
しかし、「。cpp」ファイルからメソッドを再定義すると、実際に発生します。
注:FireEventを基本クラス「LabSimulatorTime」から「非純粋」にすると、すべてがうまく機能します。
もちろん、もっと具体的にしようとすることもできますが、何が起こっているのかについてすでに考えている人もいるかもしれません。
どうもありがとう
ruby-on-rails - RAILS、バンドル インストールの戻り値 - 未定義のシンボル: SSLv2_method
Rails プロジェクトを「バンドル インストール」しようとしましたが、次のエラーが発生しました。
このケース ( Ubuntu と SSLv2_method の未定義シンボル) を見つけましたが、Ubuntu 12.04 x64 で修正する方法がわかりません。
助けてくれてありがとう。
UPD:それは私のために働いた(ロシア語で)
c++ - C++: dlopen() で共有ライブラリをロードするときの未定義のシンボル
dlopen() を使用して共有ライブラリを別の共有ライブラリにロードしようとすると、問題が発生します。dlopen() を正しく使用する方法に関するすべてのチュートリアルを確認しました。したがって、簡略化されたコードは次のとおりです。
メイン共有ライブラリには、サブ共有ライブラリ (別名プラグイン) が実装する必要がある純粋仮想関数を持つクラスが含まれています。さらに、デフォルトの動作で実装されている他の機能がいくつかあります。クラスをロードして作成するシンボルを持つために、すべてのプラグインに追加されるマクロを作成しました。
主な共有ライブラリ
plugin.h:
プラグイン.cpp:
main.so をビルドしてリンクする
サブ共有ライブラリは、純粋仮想関数のみを実装します。他の関数はオプションですが、オーバーライドできます。
サブ共有ライブラリ
plugin-impl.cpp
これらは、サブ共有ライブラリを構築およびリンクするための行です。
sub.so をビルドしてリンクする
これは、サブ共有ライブラリを開くための行です。LAZY、NOW、NOW | を試してみました。GLOBAL など、影響はありません。
メイン共有ライブラリのどこかで dlopen() を呼び出します。
これのほとんどは非常にうまく機能しています。ただし、サブ共有ライブラリをメイン共有ライブラリにロードしようとすると、dlopen は の未定義シンボルについて不平を言いbool A::func2() const
ます。関数はメインの共有ライブラリにしか存在しないため、とにかくエクスポートする必要があると思います。私を助けてください!私は非常に混乱しています!
解決
実行可能ファイルを変更できないため、次のオプションを g++ に追加して、メイン共有ライブラリをサブ共有ライブラリとリンクする必要があります。
このセットでは、 を設定する必要はありませんLD_LIBRARY_PATH
。
python-3.x - Pythonコンソール:ImportError PyUnicodeUCS4_FromString
誰かが私が何が起こっているのか、そしてこのエラーを解決する方法を理解するのを手伝ってもらえますか?
以前にコンパイルしたモジュールをインポートしようとすると、次のメッセージが表示されます。
c++ - 関数を呼び出す直前に関数を宣言するときのリンカエラー
私のゲームには、次のコードを含む更新関数があります。
このDrawMiniFPSCounter()
関数は、ビルドターゲットの一部であるminiFPSCounter.cppというファイルで宣言されています(私はXcodeを使用しています)。ビルド中に、DrawMiniFPSCounter
シンボルが見つからないというリンカーエラーが発生します。上記の宣言を削除して呼び出しDrawMiniFPSCounter()
てみましたが、コンパイル中に「シンボルが見つかりません」というエラーが発生します。リンカがこのシンボルを見つけるのに問題があるのはなぜですか?プロジェクトでシンボルが解決される順序と関係がありますか?
nm hrMiniFPSCounter.o | grep Draw
編集:ビルドディレクトリでコマンドを実行すると、次の出力が得られました:
これは正常ですか?関数名の最後に余分な文字があるのはなぜですか?
ios - Xcode 4.5 で ZXing ライブラリを使用する場合のアーキテクチャ armv7 の未定義シンボル
私がやろうとしていること
QR コード リーダー フレームワークであるZxingを iPhone プロジェクトに統合します。ここから ZXing sdk をチェックアウトしました。ScanTest という名前の ZXing に付属するサンプル プロジェクトを問題なく実行しました。しかし、ライブラリをプロジェクトに統合しようとすると、言及されたエラーが発生します。
プロジェクト仕様
- 対象OS:iOS 6.0
- 導入対象:iOS 5.0以上。
- テスト済み: iPhone 4 および iPhone 3GS。
- Xcode : Xcode 4.5.1
- ZXing バージョン: 2.0
問題
ビルドすると、 ZXing readme ファイルのすべての統合ステップを実行した後、次のようなビルド エラーが発生します。
そのようなエラーが 27 あります。最初の 2 つだけをコピーしました。
わかったこと
まあ、私はこれ、これ、これ、これ、これ、これ、スタックオーバーフローのこのスレッドをすべて同じエラーメッセージで調べました。解決策はどれもうまくいきませんでした。
その後、ZXing フォーラムで同じ問題について話し合っているこのクローズド スレッドを見つけました。その議論から、いくつかの可能な解決策は(いくつかのために働いた)
最初のエラーは (おそらく) main.m の名前を main.mm に変更していないためです。2 番目のエラーは (おそらく) ウィジェット ライブラリに対してリンクしていないためです。
また、main.m の名前を変更し、ライブラリを追加したかどうかをクロス チェックして、確かに追加したことを確認しました。したがって、これは当てはまりません。
メイン プロジェクトに合わせてライブラリのアーキテクチャを「標準 (armv7、armv7s)」に変更した後、アプリを正常にコンパイルできました。
私のプロジェクト、ターゲット、ライブラリ プロジェクト (デバッグ、配布、リリース用) のアーキテクチャは として与えられStandard (armv7, armv7s)
ます。だから運もありません。
そして彼らはこう言って問題を締めくくった。
zxing プロジェクトが更新され、armv7s アーチが追加され、armv6 アーチが削除されました。これらの変更は、(1) armv7s である iPhone 5 用にビルドするために必要であり、(2) Xcode 4.5 には armv6 のサポートが含まれていないため、まったくビルドするためにも必要です。独自のプロジェクト ファイルがある場合は、これらの変更を自分で行う必要があります。これらは zxing に固有のものではない一般的な変更であるため、問題が発生した場合は、StackOverflow などの一般的なフォーラムでより多くの/より迅速なヘルプを得ることができます。
ここにいるのは、StackOverflow です。
もう1点
ZXing 統合README ファイルでは、統合の最初のステップは次のとおりです。
1) 「 」の下にある「ZXingWidget.xcodeproj」ファイルを見つけます
zxing/iphone/ZXingWidget/
。ZXingWidget.xcodeproj をドラッグし、Xcode プロジェクトの「グループとファイル」サイドバーのルートにドロップします。ダイアログが表示されます。[追加] をクリックする前に、[アイテムのコピー] がオフになっていること、[参照タイプ] が [プロジェクトに相対] になっていることを確認してください。または、プロジェクト ナビゲータを右クリックして、[ファイルを "MyProject" に追加] を選択することもできます。
ZXingWidget.xcodeproj ファイルをプロジェクトにドラッグしたとき、ダイアログが表示されませんでした。プロジェクトがプロジェクトに直接追加され、「アイテムのコピー」および「参照タイプ」プロパティを設定できませんでした。Xcode 4.5 の新機能なのかバグなのかわかりません。これは、README ファイルに従って正しく実行できなかった唯一の手順です。
さて、あなたは私が持っているすべての情報を持っています。私はこれを6時間修正しようとしています。何か案が?
function - luaで未定義関数を呼び出したときに通知を受け取ります
C++ コードの場合:
Lua コードでは:
今私の質問は:
関数CreateWindow
は指定されたオブジェクトを返しますがwin
、関数resize
は定義されていません。Lua で未定義の関数を呼び出したときに通知を受け取るにはどうすればよいですか?
通知には、文字列"resize"
と引数が含まれます800,600
。未定義の関数をコールバック関数にマップするようにソースを変更したいのですが、正しくありません。
java - Xcode 4.5.1: リンカ エラー: NSJavaVirtualMachine、アーキテクチャ i386 のシンボルが見つかりません
目的の C、iPhone 5 アプリケーションから Java クラスを呼び出そうとしています。Xcode 4.5.1 を使用しています。この段階では、次のエラーなしでは仮想マシンをロードすることさえできません。
アーキテクチャ i386 の未定義シンボル:
「_OBJC_CLASS_$_NSJavaVirtualMachine」、参照元: main.o ld の objc-class-ref: アーキテクチャ i386 のシンボルが見つかりません。clang: エラー: リンカー コマンドが終了コード 1 で失敗しました (呼び出しを確認するには -v を使用します)。
これらは私が従った手順です、
1) main.m で:
2)JavaVM.Frameworkを次のように追加しました:(右クリック)フレームワーク->「ファイルをプロジェクトに追加」-> JavaVM.Framework->(アイテムを宛先グループのフォルダーにコピーし、フォルダー参照を作成...->「追加」をクリックします
(Build Phases -> Link Binary with Libraries にも表示されます)
3) info.plist に、次のプロパティが追加されました。
Java クラス パスと Java ルート ディレクトリ
どちらも、Java ファイルを保存しているグローバル ディレクトリに設定されています。
Java クラスの add 関数と get 関数を呼び出そうとしていますVector
。しかし、VM を Xcode にまったくロードできないようです。助けてください。