問題タブ [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.
c++ - ruby 内の C++ .so ライブラリを使用する未解決のシンボル
私は最近、いくつかの高度な画像分析機能を提供する 2 つのカスタム ライブラリにユーザー インターフェイスを提供することに重点を置いた、Ruby on Rails プロジェクトの開発を継承しました。
Webrick サーバーを起動すると、動作しているように見えますが、画像をアップロードしようとするとすぐに、共有オブジェクトを使用する必要があると、次のようになります。
ライブラリをコンパイルするときに --no-undefined を渡そうとしたので、未定義のシンボルは許可されませんが、コンパイルは成功します。また、ldd はそのライブラリの未定義のシンボルを表示しません。
私の質問が非常に具体的であることはわかっているので、必ずしも魔法のような答えを期待しているわけではありません。問題がどこにあるのかについての提案を投稿してくれる人に満足しています。
linux - 複数のファイルを含むカーネル モジュール - 不明なシンボル
こんにちはstackoverflowers :)
ここ数時間、私は複数のファイル モジュールをコンパイルしてロードしようと試みてきました。コンパイルで奇妙な警告が表示され、モジュールのロードに失敗します。モジュール、Makefile、コンパイル出力、dmesg は次のとおりです。
ヘッダ:
「メイン」モジュール ファイル:
do_module_func()
「メイン」モジュールにある呼び出しを行う他の c ファイル
メイクファイル
私はクロスコンパイルを行っていますが、これは問題ではないと考えています。出力を行います:
insmod 出力:
can't insert 'mymodule.ko': unknown symbol in module, or unknown parameter
dmesg:
mymodule: Unknown symbol do_mdule_func (err 0)
したがって、モジュールは (リンケージ?) 警告でコンパイルされ、モジュールはロードされません。
make の出力を見ると、other_file.c をコンパイルした後にリンケージが試行されているように見えますが、リンケージの前に mymodule.c もコンパイルするべきではありませんか?
ありがとう!:)
php - Magento ひし形のクエスチョン マークを削除
私のページには、mysql データベースから php コードを取得するひし形のクエスチョン マークがあります。
どうすればこれを取り除くことができますか?
c++ - テンプレート クラスの静的ヘルパー関数でグローバル関数を呼び出すとリンカー エラーが発生するのに、非静的メンバー関数では呼び出されないのはなぜですか?
autotools ビルド システムを使用して静的ライブラリを作成するプロジェクトがあります。このライブラリにリンクする小さなテスト プログラムを作成して、このライブラリをテストしたいと考えています。
テスト プログラムは code::blocks IDE で作成されています。ヘッダーを含むパスが検索ディレクトリに追加され、含まれているライブラリが追加されました。
テスト プログラムをコンパイルすると、次のエラーが発生します。
ただし、xhypot はグローバル関数として宣言されており、次のようにインクルード ヘッダーに含まれreal.h
ています。
コンパニオン ファイルで定義されますreal.cpp
。
タイプ nr_double_t は config.h で次のように定義されています。
問題のある呼び出しがxhypot
発生する場所は、次のようなテンプレート クラスの静的ヘルパー関数です。
ただし、xhypot
クラスの他の非静的メンバー関数でもまったく同じ構文で呼び出されます (つまり、この静的メソッドの行を次xhypot(double,double)
の行に置き換えると、エラーは消えます。nr_double_t z = xhypot (a, b);
nr_double_t z = 0.0;
これが私のテストプログラムの全体です:
完全なビルド ログ:
私はgcc 4.4.6を搭載したScientific Linux 6.1でcode::blocks 10.05を使用しており、たくさんあるので-DHAVE_CONFIG_Hを渡しています
ソースでは、config.h
autoconf によって生成されます。また、プログラムとしてビルドすると、コードが正常にコンパイルされることも付け加えておく必要があります。このプログラムのコードのサブセット (1 つのファイルを除くすべて) を抽出して、この静的ライブラリに入れました。
テンプレート クラスは 2 つのファイルにまたがっておりeqnsys.h
、eqnsys.cpp
. これを行うのがベストプラクティスではないことはわかっていますが、かなり大きいため、おそらく行われています。それは私のコードではありません。( )eqnsys.cpp
の下に含まれています。静的ヘルパー関数は で定義されています。これが関連する場合にはそうではありません。の先頭に次を追加します。eqnsys.h
#include "eqnsys.cpp"
eqnsys.cpp
real.h
#include
eqnsys.cpp
eqnsys.h
eqnsys.cpp
インスタンス化を強制しても問題は解決しません。与えられた関数を静的ヘルパー関数ではなくメンバー関数に変更すると、エラーは消えます。これは私が取るかもしれないルートですが、将来回避できるように、問題の本当の原因は何ですか?
xcode - Xcode のインクルード ファイルに関する問題
gstreamer プロジェクトをコンパイルしているときに、Xcode のインクルード ファイルに問題があります。ヘッダー検索パスには、「/Library/Frameworks/GStreamer.framework/Versions/0.10/Headers」が含まれます。
ヘッダー ファイルをインクルードしている場合:
#include <gst/gst.h>
CMD + クリック機能でリンクをたどると、「SYMBOL NOT FOUND」と表示されます。
さらに、コンパイルの問題があります。理由はここにあると確信しています。
ありがとう
c++ - C++ FFT の実装 (アーキテクチャ x86_64 の未定義シンボル)
C++ で FFT を実装しようとしています。しかし、私はこのエラーが発生しています:
これが私のコードです: