chromiumOS emerge undefined ссылка на `std :: __ 1 :: mutex :: unlock () ' - PullRequest
0 голосов
/ 16 июня 2020

Я пишу файл ebuild, который используется в chromiumOS.

Но когда я пытаюсь скомпилировать свой код, я обнаружил, что не могу скомпилировать свою программу с помощью «emerge xxx». Когда я использую make напрямую, он работает нормально.

Я получаю следующие строки ошибки:

 smiTransfer.o: In function `lock_guard':
/usr/bin/../include/c++/v1/__mutex_base:91: undefined reference to `std::__1::mutex::lock()'
smiTransfer.o: In function `threadsafe_queue<_RECT_IN_ENCODE_Q>::push(_RECT_IN_ENCODE_Q)':
/var/tmp/portage/app-misc/test-9999/work/test-9999/./ThreadSafeQueue.hpp:35: undefined reference to `std::__1::condition_variable::notify_one()'
smiTransfer.o: In function `~lock_guard':
/usr/bin/../include/c++/v1/__mutex_base:97: undefined reference to `std::__1::mutex::unlock()'
/usr/bin/../include/c++/v1/__mutex_base:97: undefined reference to `std::__1::mutex::unlock()'
/usr/bin/../include/c++/v1/__mutex_base:97: undefined reference to `std::__1::mutex::unlock()'
/usr/bin/../include/c++/v1/__mutex_base:97: undefined reference to `std::__1::mutex::unlock()'
smiTransfer.o: In function `lock_guard':
/usr/bin/../include/c++/v1/__mutex_base:91: undefined reference to `std::__1::mutex::lock()'
smiTransfer.o: In function `~lock_guard':
/usr/bin/../include/c++/v1/__mutex_base:97: undefined reference to `std::__1::mutex::unlock()'
smiTransfer.o: In function `lock_guard':
/usr/bin/../include/c++/v1/__mutex_base:91: undefined reference to `std::__1::mutex::lock()'
smiTransfer.o: In function `~lock_guard':
/usr/bin/../include/c++/v1/__mutex_base:97: undefined reference to `std::__1::mutex::unlock()'
/usr/bin/../include/c++/v1/__mutex_base:97: undefined reference to `std::__1::mutex::unlock()'
...
collect2: error: ld returned 1 exit status
make: *** [Makefile:43: x64/test] Error 1
* ERROR: app-misc/test-9999::chromiumos failed (compile phase):
*   emake failed
* 

И это мой MAKEFILE:

...
LABRARYS := -lusb-1.0
CC := g++
CFLAGS += -g -Wall -O2
CXXFLAGS := -std=c++11
CPPFLAGS := $(CFLAGS)
CPPFLAGS += $(addprefix -I,$(INCLUDES))
CPPFLAGS += -MMD
...
$(EXECUTABLE) : $(OBJS)
        $(CC) -o $(EXECUTABLE) $(OBJS) -L$(LIBSDIR) $(LABRARYS) -lpthread

Спасибо.

...