1.64位系统上源码编译32位libcurl库
2.windowsä¸LIBåDLLçåºå«ä¸ä½¿ç¨
64位系统上源码编译32位libcurl库
有时候需要交叉编译libcurl,源码比如目标机器是生成位系统的,但是源码本地机器是位系统的,而且由于某些原因,生成家族审核源码我们无法在位系统上直接编译,源码所以需要用到交叉编译
libcurl是生成eclips 查源码依赖openssl的,所以先编译openssl的源码位库 完整编译选项配置如下:
详细选项含义如下:预先已经export CC的版本 配置-m指定编译位的库 配置–prefix指定openssl的安装目录 配置–openssldir指定openssl的头文件目录 配置shared关键字指定编译时生成动态库(libssl.so/libcrypto.so及其相关软连接)然后再make && make install即可
有时候有的系统是默认安装了位zlib库的,那么就可以跳过这一步,生成但是源码有的系统需要自己下载编译zlib-位库 完整编译选项配置如下:直接修改CMakeLists.txt文件,增加以下两行 set(CMAKE_C_FLAGS “-m”) set(CMAKE_CXX_FLAGS “-m”) 详细选项含义如下:配置CMAKE_C_FLAGS指定编译位库环境 配置CMAKE_CXX_FLAGS指定编译位库环境然后再mkdir build && cd build && cmake .. && make && make install即可
最后就是生成编译libcurl 完整编译选项配置如下:
详细选项含义如下:配置PKG_CONFIG_PATH指定启动openssl选项(启动这个选项,就会默认链接lssl,源码lcrypto,生成lz三个库) 配置CFLAGS指定编译位库环境 配置CPPFLAGS指定链接的源码mac 内核源码库的头文件 配置LDFLAGS指定链接的库的路径然后再make && make install即可
当编译第三方库的时候,如果有CMakeLists.txt,生成直接用CMakeLists.txt编译就很方便;如果只有configure,源码那么需要先了解编译选项执行./configure –help来查看当前支持的greenplum 源码编译编译选项然后根据提示配置一下我们需要指定的选项,比如自己指定的openssl的版本的库和头文件路径名,比如CC的版本,比如安装路径等等 (当然,linux 1.0 源码如果不需要额外配置这些东西的话,直接走默认配置的话,那么直接执行./config或者./configure就行)然后在生成Makefile之后,再make && make install即可
windowsä¸LIBåDLLçåºå«ä¸ä½¿ç¨
å ³äºlibådllçåºå«å¦ä¸ï¼
ï¼1ï¼libæ¯ç¼è¯æ¶ç¨å°çï¼dllæ¯è¿è¡æ¶ç¨å°çãå¦æè¦å®ææºä»£ç çç¼è¯ï¼åªéè¦libï¼å¦æè¦ä½¿å¨æé¾æ¥çç¨åºè¿è¡èµ·æ¥ï¼åªéè¦dllã
ï¼2ï¼å¦æædllæ件ï¼é£ä¹libä¸è¬æ¯ä¸äºç´¢å¼ä¿¡æ¯ï¼è®°å½äºdllä¸å½æ°çå ¥å£åä½ç½®ï¼dllä¸æ¯å½æ°çå ·ä½å 容ï¼å¦æåªælibæ件ï¼é£ä¹è¿ä¸ªlibæ件æ¯éæç¼è¯åºæ¥çï¼ç´¢å¼åå®ç°é½å¨å ¶ä¸ã使ç¨éæç¼è¯çlibæ件ï¼å¨è¿è¡ç¨åºæ¶ä¸éè¦åæå¨æåºï¼ç¼ºç¹æ¯å¯¼è´åºç¨ç¨åºæ¯è¾å¤§ï¼èä¸å¤±å»äºå¨æåºççµæ´»æ§ï¼åå¸æ°çæ¬æ¶è¦åå¸æ°çåºç¨ç¨åºæè¡ã
ï¼3ï¼å¨æé¾æ¥çæ åµä¸ï¼æ两个æ件ï¼ä¸ä¸ªæ¯LIBæ件ï¼ä¸ä¸ªæ¯DLLæ件ãLIBå å«è¢«DLL导åºçå½æ°å称åä½ç½®ï¼DLLå å«å®é çå½æ°åæ°æ®ï¼åºç¨ç¨åºä½¿ç¨LIBæ件é¾æ¥å°DLLæ件ãå¨åºç¨ç¨åºçå¯æ§è¡æ件ä¸ï¼åæ¾çä¸æ¯è¢«è°ç¨çå½æ°ä»£ç ï¼èæ¯DLLä¸ç¸åºå½æ°ä»£ç çå°åï¼ä»èèçäºå åèµæºãDLLåLIBæä»¶å¿ é¡»éåºç¨ç¨åºä¸èµ·åè¡ï¼å¦ååºç¨ç¨åºä¼äº§çé误ãå¦æä¸æ³ç¨libæ件æè 没ælibæ件ï¼å¯ä»¥ç¨WIN APIå½æ°LoadLibraryãGetProcAddressè£ è½½ã