Tengo un archivo de biblioteca estática llamado libunp.a
, sé que podría usar gcc -lunp xx
para vincular a la biblioteca.#pragma comment (lib, "xxx.lib") equivalente en Linux?
Podría usar #pragma comment(lib,"xxx.lib")
para decirle al compilador de Microsoft C/C++ que incluya la biblioteca; ¿Cómo podría hacerlo bajo Linux/GCC?
Durante las últimas décadas, los programadores han popularizado el diseño de archivos .h y archivos .lib para tener algún tipo de relación entre ellos. En tal caso, tiene sentido que un archivo .h contenga un pragma que le indique al vinculador que vincule el archivo .lib correspondiente. Seguro que gcc no lo tiene, pero eso no significa que no tenga sentido. –
Entonces asume que las bibliotecas no requieren ninguna ruta adicional ni banderas durante la vinculación. Esto es principalmente cierto en Windows, por lo tanto, el pragma 'funciona' en el entorno de Visual Studio. Otros pragmas de gcc son al menos consistentes en diferentes sabores de Linux/Solaris/BSD siempre que use la misma versión de gcc. Los caminos son, sin embargo, no. Por eso tiene todo el sentido separar la etapa de compilación en las secuencias de comandos de configuración o los archivos MAKE. No tiene nada que ver dentro de las unidades de traducción. Intente portar el software en algún momento ;-) –
@Mads: El hecho de que Unix es una plataforma fracturada que requiere la separación de las fases de compilación y enlace, y todo el dolor que eso conlleva, no es una justificación para destrozar la forma en que Windows lo hace. que es mucho más fácil de tratar y permite a los implementadores de bibliotecas quitarle ese dolor a sus usuarios. La idea de que el enfoque de Unix es más difícil pero mejor es puro masoquismo irracional. –