2015-10-09 3 views
0

Мой код отлично работает на моем Mac, но не компилируется на Linux. Я получаю ошибку компиляцииКод на C++ компилируется на Mac, но не на linux

/tmp/ccWcFSEW.o: In function `main': 
DroneMap.cpp:(.text.startup+0x22d): undefined reference to `pthread_create' 
DroneMap.cpp:(.text.startup+0x262): undefined reference to `pthread_join' 
collect2: error: ld returned 1 exit status 

Кто-нибудь есть идея, что означает, что это сообщение об ошибке или почему я получаю это, потому что я не могу понять это.

CXX=g++ 
CXXFLAGS=-Wall -O3 

all: DroneMap 

clean: 
    rm -rf DroneMap 
+0

Это ошибки компоновщика. Он не может разрешать вызовы в библиотеке pthread. Убедитесь, что компоновщик может найти библиотеку pthread (обычно через опцию -L). –

+1

Попробуйте [этот ответ] (http://stackoverflow.com/a/1665110/4440992). – Joe

+1

Ваш код хочет связать библиотеку 'pthreads'. Убедитесь, что вы задаете '-pthread' при компиляции и компоновке. –

ответ

3

Вам необходимо включить PTHREAD библиотеку в вашей команде компиляции, я не знаю, как вы скомпилировать его в MAC, но правильная команда компиляции для Linux будет так.

CXX=g++ 
CXXFLAGS=-pthread -Wall -O3 

all: DroneMap 

clean: 
    rm -rf DroneMap 
+0

им жаль, что я не знаю много о сделать файлы, как бы я изменить мое CXX = г ++ CXXFLAGS = -Wall -O3 всего: DroneMap чистый: \t гт -rf DroneMap –

+0

Добавить файл сделать в вашей статью, чтобы мы могли помочь вам –

+0

Посмотрите на мою модификацию в моем ответе –