Make Qt4.8.1 on Linux, generate dynamic library error!
Hi, everyone,
I try to compile QT 4.8.1 on Linux for Ti AM335x platform, but when run "make" try to link and generate dymic library, it report "init.c:(.text+0x34): undefined reference to `main'" error.
I check and found this problem is caused by handling the library as application, the make try to find _main() function, so report error. There is no "-shared" option in linker setting so cause this problem.
Following is my configuration:
./configure -v -prefix /opt/qt-4.8.1 -fast -platform qws/linux-x86-g++ -xplatform qws/linux-am335x-g++ -embedded arm -webkit -no-mmx -no-3dnow -no-glib -no-cups -no-largefile -dbus -shared
and my qmake.conf:
#include(../../common/g++.conf)
include(../../common/linux.conf)
include(../../common/qws.conf)
# modifications to g++.conf
QMAKE_CC = /home/sword/ti-sdk-am335x-evm-05.04.00.00/linux-devkit/bin/arm-arago-linux-gnueabi-gcc
QMAKE_CXX = /home/sword/ti-sdk-am335x-evm-05.04.00.00/linux-devkit/bin/arm-arago-linux-gnueabi-g++
QMAKE_LINK = /home/sword/ti-sdk-am335x-evm-05.04.00.00/linux-devkit/bin/arm-arago-linux-gnueabi-g++
QMAKE_LINK_SHLIB = /home/sword/ti-sdk-am335x-evm-05.04.00.00/linux-devkit/bin/arm-arago-linux-gnueabi-g++
#QMAKE_CFLAGS_RELEASE = -O3 -march=armv5te
#QMAKE_CXXFLAGS_RELEASE = -O3 -march=armv5te
QMAKE_CFLAGS += -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -I/home/sword/ti-dvsdk_omapl138-evm_04_03_00_06/linux-devkit/arm-arago-linux-gnueabi/usr/include/dbus-1.0/ -I/home/sword/ti-dvsdk_omapl138-evm_04_03_00_06/linux-devkit/arm-arago-linux-gnueabi/usr/lib/dbus-1.0/include
QMAKE_CXXFLAGS += -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -I/home/sword/ti-dvsdk_omapl138-evm_04_03_00_06/linux-devkit/arm-arago-linux-gnueabi/usr/include/dbus-1.0/ -I/home/sword/ti-dvsdk_omapl138-evm_04_03_00_06/linux-devkit/arm-arago-linux-gnueabi/usr/lib/dbus-1.0/include
# modifications to linux.conf
QMAKE_AR = /home/sword/ti-sdk-am335x-evm-05.04.00.00/linux-devkit/bin/arm-arago-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = /home/sword/ti-sdk-am335x-evm-05.04.00.00/linux-devkit/bin/arm-arago-linux-gnueabi-objcopy
QMAKE_STRIP = /home/sword/ti-sdk-am335x-evm-05.04.00.00/linux-devkit/bin/arm-arago-linux-gnueabi-strip
QMAKE_LIBS = -lts -lz -L/data/arago/usr/lib -ldbus-1
load(qt_config)
#-I/home/sword/ti-dvsdk_omapl138-evm_04_03_00_06/linux-devkit/arm-arago-linux-gnueabi/usr/include/dbus-1.0/ -I/home/sword/ti-dvsdk_omapl138-evm_04_03_00_06/linux-devkit/arm-arago-linux-gnueabi/usr/lib/dbus-1.0/include
Is there any problem on it?
Can anybody help me?
Thanks!
Re: Make Qt4.8.1 on Linux, generate dynamic library error!
Sorry for distorbing you, I solved this problem.
For avoiding warning, I get rid of the include code in my qmake.conf:
#include(../../common/g++.conf)
this will cause that problem.
Regards