После устранения всех ошибок компиляции из-за миграции теперь возникают ошибки компоновщика для библиотек.C++ Связывание не удается найти библиотеку при миграции проекта из Unix в Linux
Оригинальный выход следующим образом (некоторые названия в проекте были заменены по понятным причинам):
----------------------------------------------------------------
(G) Linking module_name.o to make module_name
LDOPTS set to:
SHLIB Temp Path: /tmp/fbaSHLIBs020217035348fbamgr
FBA libraries: -L/tmp/fbaSHLIBs020217035348fbamgr -lfba -lprocessControl
Application libraries: -L/opt/app/fba/devl_rel_ver/bin/lib -lfba -lprojNameGenEdit -lprojNameTraceTool -lprojNameTables -lprojNameCommCcSc -lprojNamerecProc -lprojNameGenMap -lprojNameLogicalTracker -lprojNameCallCodes -lprojNameStrCodes -lprojNameFileVal -lprojNameReports -L -ltmi -L/opt/IBM/db2/V8.1/lib64 -ldb2
g++ -o module_name module_name.o \
\
-I/opt/app/fba/devl_rel_ver/common \
-L/tmp/fbaSHLIBs020217035348fbamgr -lfba -lprocessControl \
-L/opt/app/oraclnt/oracle/product/11.2.0.3/lib -lclntsh \
`cat /opt/app/oraclnt/oracle/product/oraclient/lib/ldflags` \
`cat /opt/app/oraclnt/oracle/product/oraclient/lib/sysliblist` \
-L/opt/app/fba/devl_rel_ver/bin/lib -lfba -lprojNameGenEdit -lprojNameTraceTool -lprojNameTables -lprojNameCommCcSc -lprojNamerecProc -lprojNameGenMap -lprojNameLogicalTracker -lprojNameCallCodes -lprojNameStrCodes -lprojNameFileVal -lprojNameReports -L$TMI_HOME -ltmi -L/opt/IBM/db2/V8.1/lib64 -ldb2
/usr/bin/ld: cannot find -lfba
collect2: ld returned 1 exit status
make: *** [module_name] Error 1
файлы в папке временных (также, с выше заменой имени сделано):
ls /tmp/fbaSHLIBs020217035348fbamgr
libfba.sl libprojNameCallCodes.sl libprojNameFileVal.sl libprojNameGenMap.sl libprojNamerecProc.sl libprojNameStrCodes.sl libprojNameTraceTool.sl
libprocessControl.sl libprojNameCommCcSc.sl libprojNameGenEdit.sl libprojNameLogicalTracker.sl libprojNameReports.sl libprojNameTables.sl
Что я пробовал:
- FBALIB = -L $ (TEMP_SHLIB_DIR) $ (TEMP_SHLIB_DIR) /libfba.sl $ (TEMP_SHLIB_DIR)/libprocess Control.sl
- Список itemFBALIB = -L $ (TEMP_SHLIB_DIR) -llibfba.sl -llibprocessControl.sl
- FBALIB = -L $ (TEMP_SHLIB_DIR) -l $ (TEMP_SHLIB_DIR) /libfba.sl -lprocessControl
Ничего не работает!
Пожалуйста, любые идеи, что мне не хватает?
У вас есть файл libfba.so где-нибудь? –
@MatiasValdenegro Нет, просто нашел на этом ... почему? есть libfba.sl, как я показал. – Carmageddon
Потому что это файл, который ищет компоновщик, когда вы используете -lfba –