2017-11-20 9 views
1

Qt Creatorを使用して、私が作業中のプロジェクトで現在使用している共有ライブラリ共有ライブラリを作成しました。Qt C++:すべてのライブラリファイルをプロジェクトフォルダに含めます

LIBS += -L$$PWD/lib/ 

win32 { 
    SHARED_LIB_FILES = $$files($$PWD/lib/*.dll) 
    for(FILE, SHARED_LIB_FILES) { 
     BASENAME = $$basename(FILE) 
     LIBS += -l$$replace(BASENAME,\.dll,) 
    } 
} 
unix { 
    SHARED_LIB_FILES = $$files($$_PRO_FILE_PWD_/lib/*.so) 
    for(FILE, SHARED_LIB_FILES) { 
     BASENAME = $$basename(FILE) 
     LIBS += -l$$replace(BASENAME,\.so,) 
    } 
} 

しかし、私:私は何をしたい、私は私の.PROファイルに次のコードを使用しているアプリケーションののlib/フォルダにの.so/.dllはファイルを置くことです前述のエラーに遭遇することなく

Undefined reference to 'Class::function()' 

がどのように動的にのlib/フォルダからライブラリファイルを含めることができます。私はライブラリファイルから使用する機能のために、次のエラーを取得し、プロジェクトをビルドしますか?

UPDATE

コンパイラの出力:

09:56:53: Running steps for project PocketList... 
09:56:53: Configuration unchanged, skipping qmake step. 
09:56:53: Starting: "/usr/bin/make" 
g++ -m64 -Wl,-O1 -o PocketList main.o combotonselect.o ComListaCodigos.o ComEditor.o ComRecordatorio.o ComControlador.o Aplicacion.o ComNota.o ComElidedLabel.o ComDashPad.o AppRecordatorios.o AppCodigos.o ComVinchero.o AppVincheros.o Mod.o AppDashboard.o ComLogger.o ComLlave.o ComListaNotas.o AppNotas.o VentanaPrincipal.o AppConvertidorMetrico.o qrc_res.o moc_combotonselect.o moc_ComListaCodigos.o moc_ComEditor.o moc_ComRecordatorio.o moc_ComControlador.o moc_Aplicacion.o moc_ComNota.o moc_ComElidedLabel.o moc_ComResizeImageDialog.o moc_ComDashPad.o moc_AppRecordatorios.o moc_Control.o moc_AppCodigos.o moc_ComVinchero.o moc_AppVincheros.o moc_Mod.o moc_ObservadorVincheros.o moc_AppDashboard.o moc_ObservadorCuota.o moc_ObservadorConexion.o moc_ComLogger.o moc_ComLlave.o moc_ComListaNotas.o moc_AppNotas.o moc_VentanaPrincipal.o moc_AppConvertidorMetrico.o moc_WorkerObservadorVincheros.o moc_WorkerObservadorCuota.o moc_WorkerObservadorConexion.o -L/usr/X11R6/lib64 -L/media/omari/EXT/Programación/Qt\ Creator/PocketList/lib/ -lQt5Multimedia -lQt5Widgets -lQt5Gui -lQt5Network -lQt5Core -lGL -lpthread 
main.o: En la función `ConvertidorMetrico::cargar()': 
main.cpp:(.text._ZN18ConvertidorMetrico6cargarEv[_ZN18ConvertidorMetrico6cargarEv]+0x9b0): referencia a `Controlador::leerFichero(QString)' sin definir 
main.cpp:(.text._ZN18ConvertidorMetrico6cargarEv[_ZN18ConvertidorMetrico6cargarEv]+0xa49): referencia a `Controlador::split(QString, QString)' sin definir 
main.cpp:(.text._ZN18ConvertidorMetrico6cargarEv[_ZN18ConvertidorMetrico6cargarEv]+0xda1): referencia a `Controlador::split(QString, QString)' sin definir 
main.cpp:(.text._ZN18ConvertidorMetrico6cargarEv[_ZN18ConvertidorMetrico6cargarEv]+0xf0b): referencia a `Controlador::split(QString, QString)' sin definir 
Makefile:292: fallo en las instrucciones para el objetivo 'PocketList' 
main.cpp:(.text._ZN18ConvertidorMetrico6cargarEv[_ZN18ConvertidorMetrico6cargarEv]+0x1100): referencia a `Controlador::split(QString, QString)' sin definir 
AppRecordatorios.o: En la función `AppRecordatorios::guardar()': 
AppRecordatorios.cpp:(.text+0x21b3): referencia a `Controlador::escribirFichero(QString, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)' sin definir 
AppRecordatorios.o: En la función `AppRecordatorios::cargarDatos()': 
AppRecordatorios.cpp:(.text+0x2ea1): referencia a `Controlador::leerFichero(QString)' sin definir 
AppRecordatorios.cpp:(.text+0x3297): referencia a `Controlador::split(QString, QString)' sin definir 
AppCodigos.o: En la función `AppCodigos::actualizarCodigos()': 
AppCodigos.cpp:(.text+0xecf): referencia a `Controlador::escribirFichero(QString, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)' sin definir 
AppCodigos.cpp:(.text+0x124b): referencia a `Controlador::escribirFichero(QString, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)' sin definir 
AppCodigos.o: En la función `AppCodigos::cargarDatos()': 
AppCodigos.cpp:(.text+0x16be): referencia a `Controlador::esDirExistente(QString)' sin definir 
AppCodigos.cpp:(.text+0x1919): referencia a `Controlador::leerFichero(QString)' sin definir 
AppCodigos.cpp:(.text+0x1c6a): referencia a `Controlador::leerFichero(QString)' sin definir 
AppCodigos.cpp:(.text+0x1e42): referencia a `Controlador::crearDirectorio(QString)' sin definir 
AppCodigos.o: En la función `AppCodigos::eliminarCodigo()': 
AppCodigos.cpp:(.text+0x2ef7): referencia a `Controlador::eliminarArchivo(QString)' sin definir 
AppCodigos.o: En la función `AppCodigos::addCodigo()': 
AppCodigos.cpp:(.text+0x3214): referencia a `Controlador::escribirFichero(QString, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)' sin definir 
AppVincheros.o: En la función `AppVincheros::guardar()': 
AppVincheros.cpp:(.text+0x1709): referencia a `Controlador::escribirFichero(QString, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)' sin definir 
AppVincheros.o: En la función `AppVincheros::getCantidadVinchero(QString, QString)': 
AppVincheros.cpp:(.text+0x1e02): referencia a `Controlador::getVinculosURL(QString)' sin definir 
AppVincheros.o: En la función `AppVincheros::addVinchero()': 
AppVincheros.cpp:(.text+0x3e4c): referencia a `Controlador::esUrlValido(QString)' sin definir 
AppVincheros.cpp:(.text+0x3f14): referencia a `Controlador::leerURL(QString)' sin definir 
AppVincheros.o: En la función `AppVincheros::actualizarVinchero()': 
AppVincheros.cpp:(.text+0x4744): referencia a `Controlador::esUrlValido(QString)' sin definir 
AppVincheros.cpp:(.text+0x479b): referencia a `Controlador::leerURL(QString)' sin definir 
AppVincheros.o: En la función `AppVincheros::cargarDatos()': 
AppVincheros.cpp:(.text+0x4ee0): referencia a `Controlador::leerFichero(QString)' sin definir 
AppDashboard.o: En la función `AppDashboard::configurarObservadorConexion()': 
AppDashboard.cpp:(.text+0x328f): referencia a `Controlador::existeFichero(QString)' sin definir 
AppDashboard.cpp:(.text+0x3315): referencia a `Controlador::leerFichero(QString)' sin definir 
AppDashboard.o: En la función `AppDashboard::actualizarCuotaObservada()': 
AppDashboard.cpp:(.text+0x432f): referencia a `Controlador::escribirFichero(QString, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)' sin definir 
AppDashboard.cpp:(.text+0x4f1e): referencia a `Controlador::eliminarArchivo(QString)' sin definir 
AppDashboard.o: En la función `AppDashboard::solicitarCuota(bool)': 
AppDashboard.cpp:(.text+0x5a9a): referencia a `Controlador::hayConexion()' sin definir 
AppDashboard.o: En la función `AppDashboard::configurarObservadorCuota()': 
AppDashboard.cpp:(.text+0x6747): referencia a `Controlador::existeFichero(QString)' sin definir 
AppDashboard.cpp:(.text+0x67cc): referencia a `Controlador::leerFichero(QString)' sin definir 
AppDashboard.o: En la función `AppDashboard::actualizarCuotaObservada(Control::Cuota*)': 
AppDashboard.cpp:(.text+0x7d6a): referencia a `Controlador::escribirFichero(QString, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)' sin definir 
AppDashboard.o: En la función `AppDashboard::setProxyConexion()': 
AppDashboard.cpp:(.text+0x8c03): referencia a `Controlador::eliminarArchivo(QString)' sin definir 
AppDashboard.cpp:(.text+0x921b): referencia a `Controlador::escribirFichero(QString, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)' sin definir 
AppDashboard.o: En la función `Control::getCuota(QString)': 
AppDashboard.cpp:(.text._ZN7Control8getCuotaE7QString[_ZN7Control8getCuotaE7QString]+0xc2): referencia a `Controlador::leerURL(QString)' sin definir 
ComLlave.o: En la función `ComLlave::autenticar()': 
ComLlave.cpp:(.text+0x10e8): referencia a `Controlador::cifrarContrasenna(QString)' sin definir 
ComLlave.o: En la función `ComLlave::cargarDatos()': 
ComLlave.cpp:(.text+0x154b): referencia a `Controlador::leerFichero(QString)' sin definir 
ComLlave.o: En la función `ComLlave::cambiarContrasenna()': 
ComLlave.cpp:(.text+0x3392): referencia a `Controlador::cifrarContrasenna(QString)' sin definir 
ComLlave.cpp:(.text+0x371a): referencia a `Controlador::escribirFichero(QString, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)' sin definir 
ComLlave.cpp:(.text+0x3a3c): referencia a `Controlador::cifrarContrasenna(QString)' sin definir 
ComLlave.cpp:(.text+0x3ca0): referencia a `Controlador::leerFichero(QString)' sin definir 
AppNotas.o: En la función `AppNotas::guardar()': 
AppNotas.cpp:(.text+0x11f2): referencia a `Controlador::escribirFichero(QString, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)' sin definir 
AppNotas.cpp:(.text+0x1b73): referencia a `Controlador::escribirFichero(QString, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)' sin definir 
AppNotas.o: En la función `AppNotas::cargarDatos()': 
AppNotas.cpp:(.text+0x217f): referencia a `Controlador::esDirExistente(QString)' sin definir 
AppNotas.cpp:(.text+0x21dc): referencia a `Controlador::crearDirectorio(QString)' sin definir 
AppNotas.cpp:(.text+0x25bd): referencia a `Controlador::leerFichero(QString)' sin definir 
AppNotas.cpp:(.text+0x2cb9): referencia a `Controlador::leerFichero(QString)' sin definir 
AppNotas.o: En la función `AppNotas::eliminarCuaderno()': 
AppNotas.cpp:(.text+0x48b9): referencia a `Controlador::eliminarArchivo(QString)' sin definir 
AppNotas.o: En la función `AppNotas::eliminarNota()': 
AppNotas.cpp:(.text+0x4b34): referencia a `Controlador::eliminarArchivo(QString)' sin definir 
AppNotas.o: En la función `AppNotas::addNota()': 
AppNotas.cpp:(.text+0x53e7): referencia a `Controlador::escribirFichero(QString, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)' sin definir 
VentanaPrincipal.o: En la función `VentanaPrincipal::VentanaPrincipal(QWidget*)': 
VentanaPrincipal.cpp:(.text+0x1015): referencia a `Controlador::esDirExistente(QString)' sin definir 
VentanaPrincipal.cpp:(.text+0x15c7): referencia a `Controlador::crearDirectorio(QString)' sin definir 
AppConvertidorMetrico.o: En la función `AppConvertidorMetrico::convertir(QString)': 
AppConvertidorMetrico.cpp:(.text+0x3492): referencia a `te_interp' sin definir 
AppConvertidorMetrico.cpp:(.text+0x3826): referencia a `te_interp' sin definir 
moc_ObservadorVincheros.o: En la función `ObservadorVincheros::run()': 
moc_ObservadorVincheros.cpp:(.text._ZN19ObservadorVincheros3runEv[_ZN19ObservadorVincheros3runEv]+0x28): referencia a `Controlador::hayConexion()' sin definir 
moc_ObservadorVincheros.cpp:(.text._ZN19ObservadorVincheros3runEv[_ZN19ObservadorVincheros3runEv]+0x2fe): referencia a `Controlador::leerURL(QString)' sin definir 
moc_ObservadorVincheros.cpp:(.text._ZN19ObservadorVincheros3runEv[_ZN19ObservadorVincheros3runEv]+0x5f7): referencia a `Controlador::getVinculosURL(QString)' sin definir 
moc_WorkerObservadorVincheros.o: En la función `WorkerObservadorVincheros::process()': 
moc_WorkerObservadorVincheros.cpp:(.text._ZN25WorkerObservadorVincheros7processEv[_ZN25WorkerObservadorVincheros7processEv]+0x28): referencia a `Controlador::hayConexion()' sin definir 
moc_WorkerObservadorVincheros.cpp:(.text._ZN25WorkerObservadorVincheros7processEv[_ZN25WorkerObservadorVincheros7processEv]+0x2fe): referencia a `Controlador::leerURL(QString)' sin definir 
moc_WorkerObservadorVincheros.cpp:(.text._ZN25WorkerObservadorVincheros7processEv[_ZN25WorkerObservadorVincheros7processEv]+0x5f7): referencia a `Controlador::getVinculosURL(QString)' sin definir 
collect2: error: ld returned 1 exit status 
make: *** [PocketList] Error 1 
09:56:54: The process "/usr/bin/make" exited with code 2. 
Error while building/deploying project PocketList (kit: Linux) 
The kit Linux has configuration issues which might be the root cause for this problem. 
When executing step "Make" 
09:56:54: Elapsed time: 00:01. 
+1

** libに**や**ないDLL **リンカーのInformtionは、Windows上の.libファイルに格納されています。実行時にdllが使用される – Xplatforms

+0

しかし、私はLinuxで同じエラーが発生します。 –

+0

Linuxでは '.lib'が' .a'を除いて同じことが当てはまります。 – nwp

答えて

関連する問題