Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

bcm2835 кросс компилиране
http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=13119
Страница 1 от 1

Автор:  vgeorgiev [ Съб Авг 02, 2014 8:59 pm ]
Заглавие:  bcm2835 кросс компилиране

Здравейте,

Инсталирах bcm библиотеката на едно raspberry:
Код:
tar zxvf bcm2835-1.xx.tar.gz
cd bcm2835-1.xx
./configure
make
sudo make check
sudo make install


написах една тестова програма, компилирах я и получих грешка, че всички функции са undefined.
google-nah малко и видях, че трябва да сложа опция на ликера:
Код:
gcc -o blink blink.c -l bcm2835


До тук добре.
После инсталирах visualgdb крос компилатор за visual studio.
супер лесно се инсталира и използва.

Обаче, се получи проблем подобен на този по-горе.
Понеже библиотеката в външна, трябва да се пусне опция на линкера.

Ето лога при компилация:
Код:
------ Rebuild All started: Project: LinuxProject1, Configuration: Debug Win32 ------
  VisualGDB: Attempting inline build...
  VisualGDB: Run "make CONFIG=Debug clean" in directory "/tmp/VisualGDB/c/visual_studio_projects/n1/LinuxProject1/LinuxProject1" on pi@192.168.1.111 (SSH)
  rm -rf Debug
  VisualGDB: Sending 6 updated source files to build machine...
  VisualGDB: Run "make CONFIG=Debug" in directory "/tmp/VisualGDB/c/visual_studio_projects/n1/LinuxProject1/LinuxProject1" on pi@192.168.1.111 (SSH)
  mkdir Debug
  g++ -ggdb -ffunction-sections -O0   -DDEBUG  -c LinuxProject1.cpp -o Debug/LinuxProject1.o -MD -MF Debug/LinuxProject1.dep
  g++ -o Debug/LinuxProject1 -Wl,-gc-sections    -Wl,--start-group Debug/LinuxProject1.o   -Wl,--rpath='$ORIGIN'   -Wl,--end-group
  Debug/LinuxProject1.o: In function `main':
C:\visual_studio_projects\n1\LinuxProject1\LinuxProject1\LinuxProject1.cpp(9): error VGDB1000: undefined reference to `bcm2835_init'
C:\visual_studio_projects\n1\LinuxProject1\LinuxProject1\LinuxProject1.cpp(12): error VGDB1000: undefined reference to `bcm2835_gpio_fsel'
C:\visual_studio_projects\n1\LinuxProject1\LinuxProject1\LinuxProject1.cpp(17): error VGDB1000: undefined reference to `bcm2835_gpio_write'
C:\visual_studio_projects\n1\LinuxProject1\LinuxProject1\LinuxProject1.cpp(19): error VGDB1000: undefined reference to `bcm2835_delay'
C:\visual_studio_projects\n1\LinuxProject1\LinuxProject1\LinuxProject1.cpp(21): error VGDB1000: undefined reference to `bcm2835_gpio_write'
C:\visual_studio_projects\n1\LinuxProject1\LinuxProject1\LinuxProject1.cpp(23): error VGDB1000: undefined reference to `bcm2835_delay'
  collect2: ld returned 1 exit status
  make: *** [Debug/LinuxProject1] Error 1
  -------------------------------------------------------------
  Command exited with code 2
  Executable: make
  Arguments: CONFIG=Debug
  Directory: /tmp/VisualGDB/c/visual_studio_projects/n1/LinuxProject1/LinuxProject1
VisualGDB : error : Command-line action failed
C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.MakeFile.Targets(43,5): error MSB3073: The command ""C:\Program Files\Sysprogs\VisualGDB\\VisualGDB.exe" /rebuild "C:\visual_studio_projects\n1\LinuxProject1\LinuxProject1\LinuxProject1.vcxproj" "/solution:C:\visual_studio_projects\n1\LinuxProject1\LinuxProject1.sln" "/config:Debug" "/platform:Win32"" exited with code 1.
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========


Според мен трябва библиотеките са се инсталират в стандартните фолдъри на линукса, а не в юзърските.
Някаква идея как да оправя проблема.

П.С.
bcm2835.h ми се дисплейва във visualstudio-то. Дръпнало си го е от распберито.

Автор:  vgeorgiev [ Съб Авг 02, 2014 9:49 pm ]
Заглавие:  Re: bcm2835 кросс компилиране

Успях да пусна крос компилация. Тоест дръпнах библиотеките от линукската система. Компилирам на win машината и по ssh обратно.

Иска ми се варианта с билд на линукската машина да работи.

Автор:  palavrov [ Нед Авг 03, 2014 9:49 am ]
Заглавие:  Re: bcm2835 кросс компилиране

Абе я не си прави живота сложен - компилирай си на линукска машина, ако нямаш пусни една виртуална машина на виндовс.

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/