编译错误Parma Polyhedra Library:未定义引用`Parma_Polyhedra_Library :: Init :: Init()'

时间:2017-10-29 13:01:56

标签: c++ compiler-errors compilation linkage polyhedra

我从他们的官方网站上下载了最新版本的gmp和ppl并安装得很好。 AFAIS,所有库文件都在/usr/local/lib。但是当我尝试通过包含ppl.hh标头来编译和运行C ++文件时,我收到了错误

CMakeFiles/CLionProjects.dir/untitled/main.cpp.o: 
In function `__static_initialization_and_destruction_0(int, int)':
/usr/local/include/ppl.hh:19804: undefined reference to `Parma_Polyhedra_Library::Init::Init()'
/usr/local/include/ppl.hh:19804: undefined reference to `Parma_Polyhedra_Library::Init::~Init()'
collect2: error: ld returned 1 exit status

/usr/local/lib的内容,

soner@ubuntu:/usr/local/lib$ ls
libgmp.a          libgmpxx.la        libppl_c.la        libppl.so.14
libgmp.la         libgmpxx.so        libppl_c.so        libppl.so.14.0.0
libgmp.so         libgmpxx.so.4      libppl_c.so.4      python2.7
libgmp.so.10      libgmpxx.so.4.5.2  libppl_c.so.4.0.0  python3.5
libgmp.so.10.3.2  libppl.a           libppl.la
libgmpxx.a        libppl_c.a         libppl.so

简单的C ++文件是,

#include <iostream>
#include "ppl.hh"

int main() {
    return 0;
}

即使我尝试使用set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 ") 运行它,仍然会出现相同的错误。 Source

Mac OSX终端上的g ++

Soners-MacBook-Pro:Documents soner$ g++ -c main.cpp 
Soners-MacBook-Pro:Documents soner$ g++ -o test main.cpp
Undefined symbols for architecture x86_64:
  "Parma_Polyhedra_Library::Init::Init()", referenced from:
      ___cxx_global_var_init.6 in main-d99d55.o
  "Parma_Polyhedra_Library::Init::~Init()", referenced from:
      ___cxx_global_var_init.6 in main-d99d55.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation

在Ubuntu上的g ++

soner@ubuntu:~/Desktop$ cat main.cpp
#include <iostream>
#include "ppl.hh"

int main() {
    return 0;
}
soner@ubuntu:~/Desktop$ g++ -c main.cpp 
soner@ubuntu:~/Desktop$ g++ -o test main.cpp
/tmp/ccQTNpxj.o: In function `__static_initialization_and_destruction_0(int, int)':
main.cpp:(.text+0xa9): undefined reference to `Parma_Polyhedra_Library::Init::Init()'
main.cpp:(.text+0xb8): undefined reference to `Parma_Polyhedra_Library::Init::~Init()'
collect2: error: ld returned 1 exit status

0 个答案:

没有答案