Ошибка компоновщика повышения: Неразрешенная внешняя ссылка “повышение класса:: система:: константа error_category и __ cdecl повышение:: система:: get_system_category (пусто)”

Это «своего рода» возможно благодаря использованию gdb и setenv (3) , хотя мне трудно рекомендовать это делать. (Кроме того, то есть самая последняя версия Ubuntu на самом деле не позволит вам сделать это, не сказав ядру, чтобы он был более разборчив в отношении ptrace, и то же самое может пойти и на другие дистрибутивы).

$ cat setfoo
#! /bin/bash

gdb /proc/${PPID}/exe ${PPID} </dev/null
call setenv("foo", "bar", 0)
END
$ echo $foo

$ ./setfoo
$ echo $foo
bar

28
задан Trevor Hickey 5 November 2015 в 13:15
поделиться

2 ответа

Я решил проблему. Я создавал 32-битные библиотеки, когда намеревался создавать 64-битные библиотеки. Я исправил свой оператор сборки и собрал 64-битные библиотеки, и теперь он работает.

Вот моя командная строка bjam:

C:\Program Files (x86)\boost\boost_1_38>bjam --build-dir=c:\boost --build-type=complete --toolset=msvc-9.0 address-model=64 architecture=x86 --with-system
44
ответ дан 28 November 2019 в 03:11
поделиться

Вам нужно связать в библиотеке boost_system

1
ответ дан 28 November 2019 в 03:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: