Я скачал последнюю версию gmp и ppl с их официальных сайтов и хорошо установил. AFAIS, все файлы библиотеки находятся в /usr/local/lib
, Но когда я пытаюсь скомпилировать и запустить файл C ++, включив ppl.hh
заголовок, я получаю ошибку,
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 ")
, по-прежнему появляется та же ошибка. Источник
g ++ на терминале на Mac OSX
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
G ++ на Ubuntu
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
Задача ещё не решена.
Других решений пока нет …