1

gmp ライブラリを含む TOSSIM (TinyOS シミュレータ) で使用する NesC プログラムを作成しようとしています ここに私のコードのサンプルがあります

event void Boot.booted()
        {
                //dbg("MAPC", "Booted\n");
                //int g = 2;
                const char * const num = "10387922662657137735272585565990678424704150824246588991894422884684285337052622755228646547137908394766337363629003511269209591656314972254747436173398683";
                int err;

                mpz_t n;
                err = mpz_init_set_str(n, num, 10);

                dbg("MAPC","%d",sizeof(n));

                mpz_clear(n);
        }

make micaz simまたはPython スクリプトを使用してコンパイルenv "CFLAGS = -lgmp" make micaz sim を実行しようとすると、次のエラーが発生します。

Traceback (most recent call last):
  File "kdk.py", line 4, in <module>
    from TOSSIM import *
  File "/opt/tinyos-2.1.2/apps/MAP/TOSSIM.py", line 7, in <module>
    import _TOSSIM
ImportError: /opt/tinyos-2.1.2/apps/MAP/_TOSSIMmodule.so: undefined symbol: __gmpz_init_set_str
4

1 に答える 1

1

libgmp のシンボルの 1 つを解決できず、この lib でコンパイルされていないようです。

CFLAGSの代わりに-lgmpLDFLAGSを使用してみてください。ただし、 LDFLAGSはおそらく makefile でオーバーライドされるため、makefile 内で更新することをお勧めします。

于 2015-03-06T20:51:31.633 に答える