это мой первый пост, поэтому я заранее извиняюсь, если напишу что-нибудь неправильное или неправильно отформатированное.
Моя система: MacBook Pro под управлением MacOS Mojave 10.14.1, Netbeans 8.2
Язапуск простой программы на C ++, которая печатает hello world:
int main(int argc, char** argv) {
cout << "Hello World" << endl;
return 0;
}
Так что моя проблема в том, что я не могу запустить отладчик на моем MacBook с помощью команд Netbeans или Terminal.Каждый раз, когда я делаю, я получаю следующую ошибку:
не в исполняемом формате: формат файла не распознан
У меня изначально была проблема, когда у меня отсутствовала команда отладчика,Я следовал указаниям здесь и установил Homebrew, получил gdb и подписал двоичный код gdb.После всего этого я начал выдавать ошибку, выделенную выше.
Я гуглю эту новую проблему и нахожу это сообщение о переполнении стека , которое предполагает, что я могу запустить 32-битный GDB при сборкев 64-битном.Тем не менее, основываясь на выводе при запуске gdb:
GNU gdb (GDB) 8.2
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin18.0.0".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
BFD: /Users/Anon/Desktop/gdb_test/gdb_test: unknown load command 0x32
BFD: /Users/Anon/Desktop/gdb_test/gdb_test: unknown load command 0x32
"/Users/Anon/Desktop/gdb_test/gdb_test": not in executable format: file format not recognized
и конфигурации GDB:
This GDB was configured as follows:
configure --host=x86_64-apple-darwin18.0.0 --target=x86_64-apple-darwin18.0.0
--with-auto-load-dir=:${prefix}/share/auto-load
--with-auto-load-safe-path=:${prefix}/share/auto-load
--with-expat
--with-gdb-datadir=/usr/local/Cellar/gdb/8.2/share/gdb (relocatable)
--with-jit-reader-dir=/usr/local/Cellar/gdb/8.2/lib/gdb (relocatable)
--without-libunwind-ia64
--without-lzma
--without-babeltrace
--without-intel-pt
--disable-libmcheck
--without-mpfr
--with-python=/System/Library/Frameworks/Python.framework/Versions/2.7
--without-guile
--with-separate-debug-dir=/usr/local/Cellar/gdb/8.2/lib/debug (relocatable)
("Relocatable" means the directory can be moved with the GDB installation tree, and GDB will still find it.)
Кажется, что моя GDB действительно 64-битная, поэтому я предполагаю,это не проблема.Я также нашел этот пост , где верхний ответ предполагает, что GDB 8.2 невозможно сломать, и я должен просто понизить до 8.0.1.Однако редактирование говорит, что обновление командой GNU (предположительно) решило проблему, поэтому я запускаю:
brew update
и проверяю, что все обновлено, но я все еще получаю ту же ошибку,
Я нахожусь в своем уме здесь, и я потратил слишком много времени, чтобы попытаться решить эту проблему.Если это не может быть исправлено, можете ли вы предложить другие беззаботные способы (большой акцент на без проблем), я могу отлаживать программы на C / C ++ на моем Mac?В противном случае, я буду придерживаться компьютерных лабораторий моего университета.
РЕДАКТИРОВАТЬ: вот как я скомпилировал из терминала
g++ -g main.cpp -o main
Я компилирую в режиме отладки (64-разрядный) в Netbeans со стандартом C ++ 14 с использованием компилятора g ++.
Я вызываю GDB после компиляции, записывая в терминал:
gdb main
или просто используя графический интерфейс вNetbeans