Как правильно связать lnopt при его использовании в C++?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как правильно связать lnopt при его использовании в C++?

Сообщение Anonymous »

Я получаю эту ошибку при компиляции кода C++ с использованием clang и g++
ld: warning: ignoring file '/usr/local/Cellar/nlopt/2.9.1/lib/libnlopt.0.13.0.dylib': found architecture 'x86_64', required architecture 'arm64'
Undefined symbols for architecture arm64:
"_nlopt_create", referenced from:
nlopt::opt::opt(nlopt::algorithm, unsigned int) in nlopt_test-cc0bb7.o

Вот команда компиляции:
g++ -std=c++14 -I /usr/local/include nlopt_test.cpp -o nlopt_test -L /usr/local/lib -lnlopt

Вот пример программы, в которой возникает такая ошибка:
#include
int main() {
// Create an optimizer object
nlopt::opt opt(nlopt::LN_COBYLA, 2);
// Do stuff
}

Для первоначальной установки nlopt я использовал Brew install nlopt.
Для устранения неполадок я выполнил следующую команду:
ls /usr/local/lib | grep nlopt

и получил:
libnlopt.0.13.0.dylib
libnlopt.0.dylib
libnlopt.dylib

Я также выполнил эту команду:
sudo find / -name "libnlopt.a" 2>/dev/null

И не получил никаких результатов.
Я использовал другие библиотеки C++, установленные с помощью Brew, и, похоже, проблема возникает только из-за nlopt. .
Запускаем это:
file /usr/local/lib/libnlopt.0.13.0.dylib

Выдает следующее:
/usr/local/lib/libnlopt.0.13.0.dylib: Mach-O 64-bit dynamically linked shared library x86_64


Подробнее здесь: https://stackoverflow.com/questions/793 ... ng-it-in-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»