python - NesC/GMP undefined symbol

标签 python importerror gmp tinyos nesc

我正在尝试制作一个 NesC 程序以与 TOSSIM(TinyOS 模拟器)一起​​使用,包括 gmp 库 这是我的代码示例

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 simenv "CFLAGS = -lgmp"make micaz sim 编译运行良好 当我尝试通过 python 脚本执行它时,出现此错误:

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

最佳答案

libgmp 中的一个符号无法解析,看起来它不是用这个库编译的。

您应该尝试对-lgmp使用LDFLAGS,而不是CFLAGS。然而LDFLAGS可能会在makefile中被覆盖,所以,你最好在makefile中更新它。

关于python - NesC/GMP undefined symbol ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28905427/

相关文章:

python - 使用 numpy 将带有标题的列表列表转换为 csv

android - 还有什么我尝试导入 "Unable to resolve target ' android- 出现 8'"错误

与目录同名的 Python 导入类

c - GMP 最高有效数字

python - 控制轴的标题标签颜色

python - 如何找到数组中最长的连续数字链

python - 如何使用递归创建 2 个 csv 文件

python - (mach-o 文件,但它是一个不兼容的架构(有 'arm64' ,需要 'x86_64' ))

c++ - 在 64 位 Windows 7 (msys2/mingw64) 上构建 GMP 6.1.0 : configure fails due to mp_limb_t is not 64 bits

c - Visual Studio 2010 的多精度