Midnight-Ghost
11-08-2008, 06:56
Здравствуйте!
Помогите плииз. Использую Кдевелоп 3. Пишу программу с шаред библиотеками. Там КДевелоп предлагает использовать для этого CMake(CMakeList.txt): #add definitions, compiler switches, etc.
ADD_DEFINITIONS(-Wall -O2 -L)
#build a shared library
ADD_LIBRARY(test2 SHARED test2.cpp)
#for testing the shared library you probably need some test app too
ADD_EXECUTABLE(test2test test2test.cpp)
#need to link to some other libraries ? just add them here
TARGET_LINK_LIBRARIES(test2test test2)
(Это содержимое файла с настройками для компиляции. Всё вроде работает, но проблема в том, что стоит переместить программу в другую папку или на другой комп, как она тупо начинает искать библиотеки программы в той самой папке, где был проект программы.
Как сделать, чтоб шаред библиотека была бы либо в под папке либо в той же пепке где исполняемый файл(Не была бы привязана к абсолютному адрессу)
Умоляю помогите! Плииииз!
Вот пример(список файлов):
[root@localhost Temp]# ls
ElDorado/ libtest2.so* test2test*
и вот собсно проблема:
[root@localhost Temp]# ./test2test
./test2test: error while loading shared libraries: libtest2.so: cannot open shared object file: No such file or directory
[root@localhost Temp]#
Библиотека под носом, но экзешник её не видит, а ищет в другом месте
Помогите плииз. Использую Кдевелоп 3. Пишу программу с шаред библиотеками. Там КДевелоп предлагает использовать для этого CMake(CMakeList.txt): #add definitions, compiler switches, etc.
ADD_DEFINITIONS(-Wall -O2 -L)
#build a shared library
ADD_LIBRARY(test2 SHARED test2.cpp)
#for testing the shared library you probably need some test app too
ADD_EXECUTABLE(test2test test2test.cpp)
#need to link to some other libraries ? just add them here
TARGET_LINK_LIBRARIES(test2test test2)
(Это содержимое файла с настройками для компиляции. Всё вроде работает, но проблема в том, что стоит переместить программу в другую папку или на другой комп, как она тупо начинает искать библиотеки программы в той самой папке, где был проект программы.
Как сделать, чтоб шаред библиотека была бы либо в под папке либо в той же пепке где исполняемый файл(Не была бы привязана к абсолютному адрессу)
Умоляю помогите! Плииииз!
Вот пример(список файлов):
[root@localhost Temp]# ls
ElDorado/ libtest2.so* test2test*
и вот собсно проблема:
[root@localhost Temp]# ./test2test
./test2test: error while loading shared libraries: libtest2.so: cannot open shared object file: No such file or directory
[root@localhost Temp]#
Библиотека под носом, но экзешник её не видит, а ищет в другом месте