如何编译和 link 针对 cddlib 库?
How to compile and link against cddlib library?
我想启动一个使用库 cddlib (http://www.inf.ethz.ch/personal/fukudak/cdd_home/cdd.html) 的小 c++ projekt,我在目录中安装(加上 GMP),比如
/some/path/to/libcdd/
在另一个目录中,我有一个文件 main.cpp,其内容为
#include "setoper.h"
#include "cdd.h"
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#include <string.h>
int main()
{
fprintf(stdout, "start\n");
dd_set_global_constants();
dd_free_global_constants();
fprintf(stdout, "done\n");
return 0;
}
这里dd_...这两个函数是cddlib库中的函数。我尝试使用(天真的?)命令
编译它g++ -o out main.cpp
然而,这会产生
/tmp/ccF7dx0W.o: In function `main':
main.cpp:(.text+0x28): undefined reference to `dd_set_global_constants'
main.cpp:(.text+0x2d): undefined reference to `dd_free_global_constants'
collect2: error: ld returned 1 exit status
通话也是如此
g++ -L/some/path/to/libcdd/lib -I/some/path/to/libcdd/include -lcdd main.cpp
这只是一个愚蠢的错误吗?我正在使用 Ubuntu 14.04 和 g++ 4.8.2.
首先,将 cdd-path 添加到您的包含文件中:
#include <cdd/setoper.h>
#include <cdd/cdd.h>
接下来使用如下编译:
g++ -o exe main.cpp -lcdd
如果库在系统库目录中,则不需要其他任何内容。
注意:-lcdd
必须是编译器命令行的最后一个参数才能正常工作。
希望这对你有用。