Ошибка компилятора C Сбой Команды компоновщика Mac OS Big Sur

#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. У меня действительно есть основная функция в моей программе.