Не могу превратить мой c ++ файл в библиотеку с компилятором - PullRequest
2 голосов
/ 09 февраля 2012

Я пытаюсь скомпилировать мой исходный код в библиотеку, но я получаю эту ошибку

findingjimoh$ ar rcs libHeatingUnit.a HeatingUnit.o
/usr/bin/ranlib: warning for library: libHeatingUnit.a the table of contents is empty (no object file members in the library define global symbols)

.a файл создан, но затем я пытаюсь связать его с исполняемым файлом, и я получаю эту ошибку

findingjimoh$ g++ -o TemperatureControl BangBangControl.cpp -L. libBangBangControl.a libHeatingUnit.a 
ld: warning: ignoring file libHeatingUnit.a, file was built for archive which is not the architecture being linked (x86_64)

Вот мой источник

 // Jimoh Ovbiagele (JAO945)

 #include <stdio.h>
 #include <stdbool.h>

 class HeatingUnit {
   private:
bool isOn;
int temp;

   public:
/* Sets the unit's status and initial temp */
HeatingUnit(bool isOn, int temp){
  this -> isOn = isOn;
  this -> temp = temp;
}

HeatingUnit(){

}

/* Turns unit on */
void turnOn(){
  isOn = true;
}

/* Turns unit off */
void turnOff(){
  isOn = false;
}

int tick(){
  if(isOn) temp++;
  else temp--;      
  return temp;
}
};

1 Ответ

3 голосов
/ 09 февраля 2012

файл был создан для архива, который не связан с архитектурой (x86_64)

Вы должны использовать тот же набор инструментов, который вы использовали для компиляции объектного файла, например, для создания библиотеки., если вы использовали arm-none-eabi-gcc для компиляции, используйте arm-none-eabi-ar для архивирования.

...