Open dawidm opened 8 years ago
having exactly the same problem
I've also linked the libraries folder in CMakeLists.txt like
link_directories(/Volumes/adONis/Documents/Projekte/Arduino/libraries)
CMakeFiles/cltest.dir/cltest_cltest.ino.cpp.obj: In function `U8GLIB::write(unsigned char)':
/Volumes/adONis/Documents/Projekte/Arduino/libraries/U8glib/U8glib.h:94: undefined reference to `u8g_DrawGlyph'
CMakeFiles/cltest.dir/cltest_cltest.ino.cpp.obj: In function `U8GLIB::setFont(unsigned char const*)':
/Volumes/adONis/Documents/Projekte/Arduino/libraries/U8glib/U8glib.h:169: undefined reference to `u8g_font_unifont'
/Volumes/adONis/Documents/Projekte/Arduino/libraries/U8glib/U8glib.h:169: undefined reference to `u8g_font_unifont'
/Volumes/adONis/Documents/Projekte/Arduino/libraries/U8glib/U8glib.h:169: undefined reference to `u8g_SetFont'
CMakeFiles/cltest.dir/cltest_cltest.ino.cpp.obj: In function `U8GLIB::drawStr(unsigned char, unsigned char, char const*)':
/Volumes/adONis/Documents/Projekte/Arduino/libraries/U8glib/U8glib.h:174: undefined reference to `u8g_DrawStr'
CMakeFiles/cltest.dir/cltest_cltest.ino.cpp.obj: In function `U8GLIB::setColorIndex(unsigned char)':
/Volumes/adONis/Documents/Projekte/Arduino/libraries/U8glib/U8glib.h:124: undefined reference to `u8g_SetColorIndex'
CMakeFiles/cltest.dir/cltest_cltest.ino.cpp.obj: In function `U8GLIB::setHiColorByRGB(unsigned char, unsigned char, unsigned char)':
/Volumes/adONis/Documents/Projekte/Arduino/libraries/U8glib/U8glib.h:121: undefined reference to `u8g_SetHiColorByRGB'
CMakeFiles/cltest.dir/cltest_cltest.ino.cpp.obj: In function `U8GLIB::cbegin()':
/Volumes/adONis/Documents/Projekte/Arduino/libraries/U8glib/U8glib.h:53: undefined reference to `u8g_Begin'
CMakeFiles/cltest.dir/cltest_cltest.ino.cpp.obj: In function `U8GLIB::firstPage()':
/Volumes/adONis/Documents/Projekte/Arduino/libraries/U8glib/U8glib.h:110: undefined reference to `u8g_FirstPage'
CMakeFiles/cltest.dir/cltest_cltest.ino.cpp.obj: In function `U8GLIB::nextPage()':
/Volumes/adONis/Documents/Projekte/Arduino/libraries/U8glib/U8glib.h:111: undefined reference to `u8g_NextPage'
CMakeFiles/cltest.dir/cltest_cltest.ino.cpp.obj: In function `U8GLIB':
/Volumes/adONis/Documents/Projekte/Arduino/libraries/U8glib/U8glib.h:78: undefined reference to `u8g_dev_ssd1306_128x64_i2c'
/Volumes/adONis/Documents/Projekte/Arduino/libraries/U8glib/U8glib.h:78: undefined reference to `u8g_dev_ssd1306_128x64_i2c'
libuno_U8glib.a(U8glib.cpp.obj): In function `U8GLIB::initI2C(_u8g_dev_t*, unsigned char)':
/Volumes/adONis/Documents/Projekte/Arduino/libraries/U8glib/U8glib.cpp:57: undefined reference to `u8g_InitI2C'
collect2: error: ld returned 1 exit status
make[3]: *** [cltest.elf] Error 1
make[2]: *** [CMakeFiles/cltest.dir/all] Error 2
make[1]: *** [CMakeFiles/upload.dir/rule] Error 2
make: *** [upload] Error 2
The solution is described here: https://github.com/queezythegreat/arduino-cmake#creating-libraries Simply add this to your CMakeLists.txt
link_directories(/your/path/to/U8glib)
set(U8glib_RECURSE True)
I try error on Arduino 1.6.0 and CLion 2017.2.3:
/Applications/CLion.app/Contents/bin/cmake/bin/cmake --build ./cmake-build-debug --target Camera_v2 -- -j 2
[ 89%] Built target nano_CORE
Scanning dependencies of target Camera_v2
[ 92%] Building CXX object CMakeFiles/Camera_v2.dir/Camera_v2_Camera_v2.ino.cpp.obj
[ 96%] Linking CXX executable Camera_v2.elf
CMakeFiles/Camera_v2.dir/Camera_v2_Camera_v2.ino.cpp.obj: In function `setup':
./Camera_v2/Camera_v2.ino:51: undefined reference to `A4988::begin(short, short)'
./Camera_v2/Camera_v2.ino:52: undefined reference to `BasicStepperDriver::enable()'
CMakeFiles/Camera_v2.dir/Camera_v2_Camera_v2.ino.cpp.obj: In function `__static_initialization_and_destruction_0':
./Camera_v2/Camera_v2.ino:31: undefined reference to `DRV8825::DRV8825(short, short, short, short, short, short, short)'
collect2: error: ld returned 1 exit status
gmake[3]: *** [CMakeFiles/Camera_v2.dir/build.make:100: Camera_v2.elf] Error 1
gmake[2]: *** [CMakeFiles/Makefile2:164: CMakeFiles/Camera_v2.dir/all] Error 2
gmake[1]: *** [CMakeFiles/Makefile2:176: CMakeFiles/Camera_v2.dir/rule] Error 2
gmake: *** [Makefile:157: Camera_v2] Error 2
I have Arduino IDE 1.0.5, cmake 3.0.2. I downloaded library https://bintray.com/olikraus/u8glib/Arduino and put it on /usr/share/arduino/libraries. It works well with arduino ide, but doesn't link with arduino cmake. Example (minimal) code:
Errors i get with arduino-cmake:
CMakeLists.txt: