1
General / Build android application, undefined references.
« on: October 26, 2016, 04:01:37 pm »
Heyho!
Im trying to build an simple SFML-application:
When im compiling im getting various undefined references:
Im Working with Visual Studio & NVidia Tegra
i built sfml with cmake:
and compiled & installed with VS Tegra.
Im using the NDK version r10e for compability with Tegra.
I also added the libsfml-system.so etc to the Project and added the include directory which was created by 'install' in the NDK folder.
What am i doing wrong?
is it a problem that NDK&SDK are in a folder path with spaces in it? (C:\Program Files (x86)\Android\android-ndk-r10e)
Or do i have to change anything in the AndroidManifest?
Thank you in advance! - Manu
EDIT: Compiling with MinGW makefiles/make and using those results doesnt change anything either :|
EDIT2: Moved sdk & ndk to C:\Android\ so there would be no whitespace, recompiled everything, still doesnt work
Im trying to build an simple SFML-application:
#include <SFML/System.hpp>
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
int main(int argc, char *argv[])
{
sf::RenderWindow window(sf::VideoMode::getDesktopMode(), sf::String(""));
sf::CircleShape circle;
circle.setFillColor(sf::Color::Red);
circle.setPosition(50, 50);
circle.setRadius(20);
sf::View view = window.getDefaultView();
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
switch (event.type)
{
case sf::Event::Closed:
window.close();
break;
case sf::Event::Resized:
view.setSize(event.size.width, event.size.height);
view.setCenter(event.size.width / 2, event.size.height / 2);
window.setView(view);
break;
case sf::Event::TouchBegan:
if (event.touch.finger == 0)
{
circle.setPosition(event.touch.x, event.touch.y);
}
break;
}
}
window.clear(sf::Color::White);
window.draw(circle);
window.display();
}
}
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
int main(int argc, char *argv[])
{
sf::RenderWindow window(sf::VideoMode::getDesktopMode(), sf::String(""));
sf::CircleShape circle;
circle.setFillColor(sf::Color::Red);
circle.setPosition(50, 50);
circle.setRadius(20);
sf::View view = window.getDefaultView();
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
switch (event.type)
{
case sf::Event::Closed:
window.close();
break;
case sf::Event::Resized:
view.setSize(event.size.width, event.size.height);
view.setCenter(event.size.width / 2, event.size.height / 2);
window.setView(view);
break;
case sf::Event::TouchBegan:
if (event.touch.finger == 0)
{
circle.setPosition(event.touch.x, event.touch.y);
}
break;
}
}
window.clear(sf::Color::White);
window.draw(circle);
window.display();
}
}
When im compiling im getting various undefined references:
1> Tegra-Android/Shipping/Android2.o: In function `main':
1> Android2.cpp:(.text.startup+0x20): undefined reference to `sf::VideoMode::getDesktopMode()'
1> Android2.cpp:(.text.startup+0x40): undefined reference to `sf::String::String(char const*, std::locale const&)'
1> Android2.cpp:(.text.startup+0x84): undefined reference to `sf::RenderWindow::RenderWindow(sf::VideoMode, sf::String const&, unsigned int, sf::ContextSettings const&)'
1> Android2.cpp:(.text.startup+0xb8): undefined reference to `sf::CircleShape::CircleShape(float, unsigned int)'
1> Android2.cpp:(.text.startup+0xcc): undefined reference to `sf::Shape::setFillColor(sf::Color const&)'
1> Android2.cpp:(.text.startup+0xe0): undefined reference to `sf::Transformable::setPosition(float, float)'
1> Android2.cpp:(.text.startup+0xf0): undefined reference to `sf::CircleShape::setRadius(float)'
1> Android2.cpp:(.text.startup+0xf8): undefined reference to `sf::RenderTarget::getDefaultView() const'
1> Android2.cpp:(.text.startup+0x110): undefined reference to `sf::Window::isOpen() const'
1> Android2.cpp:(.text.startup+0x124): undefined reference to `sf::Window::pollEvent(sf::Event&)'
1> Android2.cpp:(.text.startup+0x170): undefined reference to `sf::Transformable::setPosition(float, float)'
1> Android2.cpp:(.text.startup+0x17c): undefined reference to `sf::Window::close()'
1> Android2.cpp:(.text.startup+0x1a0): undefined reference to `sf::View::setSize(float, float)'
1> Android2.cpp:(.text.startup+0x1d0): undefined reference to `sf::View::setCenter(float, float)'
1> Android2.cpp:(.text.startup+0x1dc): undefined reference to `sf::RenderTarget::setView(sf::View const&)'
1> Android2.cpp:(.text.startup+0x1f0): undefined reference to `sf::RenderTarget::clear(sf::Color const&)'
1> Android2.cpp:(.text.startup+0x204): undefined reference to `sf::RenderTarget::draw(sf::Drawable const&, sf::RenderStates const&)'
1> Android2.cpp:(.text.startup+0x20c): undefined reference to `sf::Window::display()'
1> Android2.cpp:(.text.startup+0x214): undefined reference to `sf::Window::isOpen() const'
1> Android2.cpp:(.text.startup+0x23c): undefined reference to `sf::Shape::~Shape()'
1> Android2.cpp:(.text.startup+0x244): undefined reference to `sf::RenderWindow::~RenderWindow()'
1> Android2.cpp:(.text.startup+0x290): undefined reference to `sf::Color::Red'
1> Android2.cpp:(.text.startup+0x294): undefined reference to `sf::Color::White'
1> Android2.cpp:(.text.startup+0x298): undefined reference to `sf::RenderStates::Default'
1> Android2.cpp:(.text.startup+0x29c): undefined reference to `vtable for sf::CircleShape'
1>collect2.exe : error : ld returned 1 exit status
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
1> Android2.cpp:(.text.startup+0x20): undefined reference to `sf::VideoMode::getDesktopMode()'
1> Android2.cpp:(.text.startup+0x40): undefined reference to `sf::String::String(char const*, std::locale const&)'
1> Android2.cpp:(.text.startup+0x84): undefined reference to `sf::RenderWindow::RenderWindow(sf::VideoMode, sf::String const&, unsigned int, sf::ContextSettings const&)'
1> Android2.cpp:(.text.startup+0xb8): undefined reference to `sf::CircleShape::CircleShape(float, unsigned int)'
1> Android2.cpp:(.text.startup+0xcc): undefined reference to `sf::Shape::setFillColor(sf::Color const&)'
1> Android2.cpp:(.text.startup+0xe0): undefined reference to `sf::Transformable::setPosition(float, float)'
1> Android2.cpp:(.text.startup+0xf0): undefined reference to `sf::CircleShape::setRadius(float)'
1> Android2.cpp:(.text.startup+0xf8): undefined reference to `sf::RenderTarget::getDefaultView() const'
1> Android2.cpp:(.text.startup+0x110): undefined reference to `sf::Window::isOpen() const'
1> Android2.cpp:(.text.startup+0x124): undefined reference to `sf::Window::pollEvent(sf::Event&)'
1> Android2.cpp:(.text.startup+0x170): undefined reference to `sf::Transformable::setPosition(float, float)'
1> Android2.cpp:(.text.startup+0x17c): undefined reference to `sf::Window::close()'
1> Android2.cpp:(.text.startup+0x1a0): undefined reference to `sf::View::setSize(float, float)'
1> Android2.cpp:(.text.startup+0x1d0): undefined reference to `sf::View::setCenter(float, float)'
1> Android2.cpp:(.text.startup+0x1dc): undefined reference to `sf::RenderTarget::setView(sf::View const&)'
1> Android2.cpp:(.text.startup+0x1f0): undefined reference to `sf::RenderTarget::clear(sf::Color const&)'
1> Android2.cpp:(.text.startup+0x204): undefined reference to `sf::RenderTarget::draw(sf::Drawable const&, sf::RenderStates const&)'
1> Android2.cpp:(.text.startup+0x20c): undefined reference to `sf::Window::display()'
1> Android2.cpp:(.text.startup+0x214): undefined reference to `sf::Window::isOpen() const'
1> Android2.cpp:(.text.startup+0x23c): undefined reference to `sf::Shape::~Shape()'
1> Android2.cpp:(.text.startup+0x244): undefined reference to `sf::RenderWindow::~RenderWindow()'
1> Android2.cpp:(.text.startup+0x290): undefined reference to `sf::Color::Red'
1> Android2.cpp:(.text.startup+0x294): undefined reference to `sf::Color::White'
1> Android2.cpp:(.text.startup+0x298): undefined reference to `sf::RenderStates::Default'
1> Android2.cpp:(.text.startup+0x29c): undefined reference to `vtable for sf::CircleShape'
1>collect2.exe : error : ld returned 1 exit status
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Im Working with Visual Studio & NVidia Tegra
i built sfml with cmake:
cmake -DANDROID_ABI=armeabi -DCMAKE_TOOLCHAIN_FILE=../../cmake/toolchains/android.toolchain.cmake ../..
and compiled & installed with VS Tegra.
Im using the NDK version r10e for compability with Tegra.
I also added the libsfml-system.so etc to the Project and added the include directory which was created by 'install' in the NDK folder.
What am i doing wrong?
is it a problem that NDK&SDK are in a folder path with spaces in it? (C:\Program Files (x86)\Android\android-ndk-r10e)
Or do i have to change anything in the AndroidManifest?
Thank you in advance! - Manu
EDIT: Compiling with MinGW makefiles/make and using those results doesnt change anything either :|
EDIT2: Moved sdk & ndk to C:\Android\ so there would be no whitespace, recompiled everything, still doesnt work