Recibo un error de enlace al compilar la biblioteca numpy contra lapack, lo que indica que necesito compilar lapack con -fPIC. Pensé que había hecho exactamente eso. ¿Hay alguna forma de determinar que la biblioteca lapack producida es independiente de la posición?¿Hay alguna forma de determinar si una biblioteca .a o .so se compiló como código de posición independiente?
18
A
Respuesta
-5
En general, usted no tiene manera de saber:
$ cat a.c
int foo(int x) { return x+1; }
$ gcc -fno-pic a.c -c -o nopic.o
$ gcc -fPIC a.c -c -o pic.o
$ cmp pic.o nopic.o
$ cmp pic.o nopic.o && echo Identical
Identical
+5
No es un ejemplo representativo. – Vanuan
14
Es posible que tenga un poco de suerte con this answer, aunque es dependiente de la plataforma y no funciona para todos los archivos de objetos (pero si el código manipula punteros en de cualquier forma, debería funcionar).
Este es el resultado de objdump -r
en un archivo compilado con -fPIC
:
test.o: file format elf32-i386
RELOCATION RECORDS FOR [.text]:
OFFSET TYPE VALUE
00000007 R_386_PC32 __i686.get_pc_thunk.cx
0000000d R_386_GOTPC _GLOBAL_OFFSET_TABLE_
y esto es para un archivo sin PIC:
test.o: file format elf32-i386
Cuestiones relacionadas
- 1. ¿Hay alguna forma de saber si se compiló una clase para java6?
- 2. PIC (código independiente de posición)
- 3. ¿Hay alguna forma de determinar si el código GWT se está ejecutando en modo de desarrollo?
- 4. ¿Hay alguna forma de determinar cuándo termina una cadena .NET?
- 5. ¿Hay alguna forma de determinar si Java System.in es "interactivo"?
- 6. ¿Hay alguna forma de determinar si la aplicación de Android se está ejecutando a pantalla completa?
- 7. ¿Hay alguna forma de saber si --debug o --verbose se pasó a PHPUnit en una prueba?
- 8. Código independiente de posición y tabla variable
- 9. ¿Hay alguna forma de determinar la cantidad ideal de hilos?
- 10. Spring-JDBC como biblioteca independiente
- 11. ¿Hay alguna forma de detectar si un objeto está bloqueado?
- 12. ¿Hay alguna forma de 'resaltar' el código?
- 13. ¿Hay alguna forma de determinar si el iphone está en itinerancia?
- 14. ¿Hay alguna forma de determinar qué versión de Visual Studio se utilizó para compilar una biblioteca estática?
- 15. ¿Hay alguna manera de descompilar Linux .so?
- 16. Determinar si el script Python se ejecuta de forma local o como CGI
- 17. ¿cómo puedo determinar si una secuencia de comandos python se importa como módulo o se ejecuta como secuencia de comandos?
- 18. Cualquier forma de determinar cuándo se compiló/construyó un programa .net
- 19. ¿Hay alguna forma de pasar una anotación Java como parámetro?
- 20. Cómo saber si un ensamblado .NET se compiló como x86, x64 o cualquier CPU
- 21. ¿Hay alguna herramienta que pueda determinar realizar análisis de código para la complejidad de Big-O?
- 22. ¿Hay alguna biblioteca de memoria temporal jerárquica de código abierto?
- 23. Código de posición independiente, bibliotecas compartidas y carillas de código: hacer que funcionen juntas
- 24. ¿Hay alguna macro para determinar si mi código se compila en Windows?
- 25. ¿Hay alguna biblioteca ActiveResource como para Java?
- 26. ¿Hay alguna forma de tomar una clase o biblioteca C# y convertirla automáticamente en Visio?
- 27. ¿Hay alguna forma de compilar código Java en una DLL?
- 28. ¿Hay alguna forma de desactivar o modificar la finalización del código de Xcode?
- 29. ¿Hay algo como .dll o .so, pero multiplataforma?
- 30. ¿Hay alguna forma de determinar a qué usuario de Mulit Conferences (MUC) se ha unido un usuario?
posible duplicado, pero no hubo respuesta no parece ser correcta : http://stackoverflow.com/questions/1340402/how-can-i-tell-with-something-like-objdump-if-an-object-file-has-been-built-wit – ergosys
Posible duplicado de [Cómo ¿Puedo decir, con algo como objdump, si un archivo de objeto ha sido creado con -fPIC?] (https: // stackoverf low.com/questions/1340402/how-can-i-tell-with-something-like-objdump-if-an-object-file-has-been-built-wi) –