C- cudd软件包:问题编译和makefile



我正在尝试运行一个简单的程序来学习如何使用CUDD软件包版本3.0.0。我下载了软件包并安装了它:(1- ./configure 2-进行3-进行检查)。

我创建了以下简单程序:

  #include <stdio.h>
  #include "cudd.h"
  #include "util.h"
  int main (int argc, char *argv[])
  {
       printf("Its working");
       DdManager *gbm; /* Global BDD manager. */
       char filename[30];
       gbm = Cudd_Init(0,0,CUDD_UNIQUE_SLOTS,CUDD_CACHE_SLOTS,0); 
       DdNode *bdd = Cudd_bddNewVar(gbm); 
       Cudd_Ref(bdd); 
       Cudd_Quit(gbm);
       return 0;
   }

我想创建一个将其编译的制作费,我该怎么做?此外,如果我想通过命令行进行编译,我该如何链接其库?

在版本3中,cudd对其构建系统进行了重大改革,因此编译使用CUDD的程序的较旧的Howtos不再适用。

为了简化构建过程,我通常建议使用cudd 静态构建构建 - 这使您可以运行以后的编译程序,而无需提供CUDD库的路径和/或安装CUDD库进入"/usr/lib"。

要这样做,首先将cudd与:

重新编译
 ./configure --enable-dddmp --enable-obj --enable-shared --enable-static; make

这可以确保构建静态库,以及您以后可能需要的CUDD的可选组件。

然后,您可以从命令行中编译示例程序:

gcc test.c -o testprogram -I /path/to/cudd-3.0.0/cudd -I /path/to/cudd-3.0.0/util -I /path/to/cudd-3.0.0/ -static -L /path/to/cudd-3.0.0/cudd/.libs/ -lcudd -lm

还有其他针对CUDD的编译方法,但我个人并不是全球安装库的忠实拥护者。如果您开始使用CUDD的更多功能,则可能必须添加更多包含编译器的目录以查找CUDD .H文件,并且可能需要更多的库。请注意,所有以"静态"开头的参数是上面的编译命令中的链接参数,而其他参数则为编译器 - 这很重要的是要知道何时开始编写makefiles以自动化构建过程。样本makefile看起来如下:

CFLAGS = -I /path/to/cudd-3.0.0/cudd -I /path/to/cudd-3.0.0/util -I /path/to/cudd-3.0.0/
LFLAGS = -static -L /path/to/cudd-3.0.0/cudd/.libs/ -lcudd -lm
default: testprogram
testprogram: test.o
    $(CC) test.o -o testprogram $(LFLAGS)
test.o: test.c
    $(CC) test.c -c -o test.o $(CFLAGS)

请咨询更全面的文档,以了解如何编写makefiles或使用替代构建系统。请注意,在上面的文件中,需要将"四个空格"为选项卡,以使makefile工作。如果将其存储在名称" makefile"中的" test.c"的目录中,则运行" make"应该构建程序。

相关内容

  • 没有找到相关文章

最新更新