#c
Вопрос:
Я пытался скомпилировать некоторый код в VS Code через терминал, используя команду
g filename.cpp
Однако я продолжаю получать эту ошибку:
Неопределенные символы для архитектуры x86_64: «_main», на который ссылается: неявная запись/запуск для основного исполняемого файла ld: символы не найдены для архитектуры x86_64 clang: ошибка: команда компоновщика не удалась с кодом выхода 1(используйте-v, чтобы увидеть вызов)
Для некоторого контекста я использую clang версии 12.0.5 для своего компилятора. Я не уверен, как решить эту проблему с компилятором, любая помощь будет очень признательна.
#include lt;iostreamgt; #include lt;stringgt; #include lt;fstreamgt; #include "BSTree.h" BSTree read_file(std::string file_name) { BSTree new_tree; std::ifstream infile(file_name); if (infile.fail()) throw "Error while attempting to read file: " file_name; infile gt;gt; new_tree; return new_tree; } int main() { try { std::string file; for(int d = 0; d lt; 12; d ) { file = "data-files/" std::to_string(d 1); BSTree l = read_file(file "l"); std::cout lt;lt; d lt;lt; ", " lt;lt; l.get_average_search_time(); BSTree p = read_file(file "p"); std::cout lt;lt; ", " lt;lt; p.get_average_search_time(); BSTree r = read_file(file "r"); std::cout lt;lt; ", " lt;lt; r.get_average_search_time() lt;lt; std::endl; } } catch (std::stringamp; error) { std::cout lt;lt; error lt;lt; std::endl; } }
Комментарии:
1. Не могли бы вы показать нам код, вызывающий эту ошибку?
2. Содержит ли ваш файл .cpp вызываемую функцию
main
?
Ответ №1:
Это будет более понятно, если вы предоставите свой код, но, похоже, вам не хватает точки входа, то есть int main() {}
. Точка входа-это функция, в которой программа начинает выполняться. Весь ваш исполняемый код должен находиться внутри int main
.
Комментарии:
1. У меня действительно есть основная функция в моей программе.