Podczas dynamicznego łączenia pojawiają się dziwne niezdefiniowane odwołania do funkcji. Znam nazwę biblioteki, która powinna zawierać tę funkcję. Czy jest jakieś polecenie linuksa, aby upewnić się, że funkcja już istnieje w bibliotece (plik .a)?Sprawdzanie istnienia funkcji w bibliotece w Linuksie
Odpowiedz
powinieneś być w stanie korzystać nm
(może wymagać parametr --demangle
), aby uzyskać listę wszystkiego, co się wewnątrz biblioteki , następnie użyj grep
do filtrowania wyników, np poszukaj \d T functionname\(
lub coś w tym stylu.
Biblioteka ma nazwę funkcji z prefiksem T. Ale nazwa funkcji nie jest dokładnie tym, czego się spodziewam. nm znajduje: '0000000000000310 T _Z15lmp_init_deviceiiiiidii' podczas gdy szukam lmp_init_device. Czy przedrostek/sufiks byłby ignorowany podczas łączenia? – ahmad
Dodaj '--demangle' i powinno usunąć dodane znaki (spowodowane tym, że jest to C++ zamiast zwykłego C). – Mario
Wystarczy popatrzeć na komendzie nm
które powinny dać kawałek informacji szukasz
- 1. Szyny: Sprawdzanie istnienia stowarzyszenia
- 2. Sprawdzanie istnienia atrybutu w dyrektywie kątowej
- 3. Skompiluj sprawdzanie czasu istnienia stdint.h
- 4. Python ConfigParser: Sprawdzanie istnienia opcji
- 5. Sprawdzanie CRT używanego w bibliotece (.lib)
- 6. Sprawdzanie istnienia pliku przy użyciu Jekyll
- 7. Sprawdzanie istnienia pliku na serwerze FTP
- 8. Sprawdzanie istnienia pliku przy użyciu ścieżki względnej
- 9. Sprawdzanie istnienia fragmentu przy użyciu Robotium - Android
- 10. Sprawdzanie istnienia cyklu i istnienia pliku w Maven i zgłaszanie błędu
- 11. Blokowanie istnienia pliku w Javie
- 12. Sprawdzanie Typ funkcji w Scala
- 13. explicite typeof == "undefined" check vs. tylko sprawdzanie jego istnienia?
- 14. Sprawdzanie istnienia pliku na zdalnym serwerze SSH przy użyciu Pythona
- 15. Sprawdzanie istnienia obrazów i favicons z RSpec i Capybara
- 16. Programowanie USB w Linuksie
- 17. Jak umieścić deklarację funkcji w bibliotece iostream w języku C++?
- 18. Jak korzystać z funkcji gotowych do drukowania w bibliotece PHPExcel
- 19. Obsługa wyjątków w Linuksie
- 20. Google protobuf w Linuksie
- 21. Konfigurowanie Mysql ++ w Linuksie
- 22. Buforowanie DNS w Linuksie
- 23. Wyłącz historia w Linuksie
- 24. Multitouch w Linuksie
- 25. Rozwój Bada w Linuksie
- 26. Sprawdzanie istnienia rekordu przed zwróceniem zestawu wyników w LINQ do SQL
- 27. Sprawdzanie istnienia leniwego załadowanego dziecka bez pobierania/ładowania w Fluent NHibernate
- 28. Membership.CreateUser() w bibliotece klas
- 29. ALLOW_UNQUOTED_FIELD_NAMES w bibliotece JONÓW JONÓW
- 30. Wykrywanie funkcji przeglądarki: sprawdzanie pisowni?
Wypróbuj 'nm', jeśli twój symbol poprzedzony jest 't' lub' T' lib ma to. –
Rohan
[autoconf] (http://www.gnu.org/software/autoconf/) robi to podczas sprawdzania dostępności biblioteki za pomocą ['AC_CHECK_LIB'] (http://www.gnu.org/software/autoconf/manual /autoconf.html#Libraries). –