vs编译lib
⑴ vs涓鐢ㄥ埌锷ㄦ佸簱镞跺彧链.h鍜.lib鏂囦欢琛屽悧
鍙浠ョ殑
濡傛灉鐢熸垚闱欐佸簱鏂囦欢锛屽垯娌℃湁DLL 锛屽彧链塴ib锛岃繖镞跺嚱鏁板彲镓ц屼唬镰侀儴鍒嗕篃鍦╨ib鏂囦欢涓
鐩鍓崭互lib钖庣紑镄勫簱链変袱绉嶏纴涓绉崭负闱欐侀摼鎺ュ簱(Static Libary锛屼互涓嬬亩绉扳滈润镐佸簱钬)锛屽彟涓绉崭负锷ㄦ佽繛鎺ュ簱(DLL锛屼互涓嬬亩绉扳滃姩镐佸簱钬)镄勫煎叆搴(Import Libary锛屼互涓嬬亩绉扳滃煎叆搴撯濓级銆傞润镐佸簱鏄涓涓鎴栬呭氢釜obj鏂囦欢镄勬墦鍖咃纴镓浠ユ湁浜哄共鑴嗘妸浠巓bj鏂囦欢鐢熸垚lib镄勮繃绋嬬О涓篈rchive锛屽嵆钖埚苟鍒 涓璧枫傛瘆濡备綘阈炬帴涓涓闱欐佸簱锛屽傛灉鍏朵腑链夐敊锛屽畠浼氩嗳纭镄勬垒鍒版槸鍝涓猳bj链夐敊锛屽嵆闱欐乴ib鍙鏄澹冲瓙銆傚姩镐佸簱涓鑸浼氭湁瀵瑰簲镄勫煎叆搴掳纴鏂逛究绋嫔簭闱欐佽浇鍏ュ姩镐 阈炬帴搴掳纴钖﹀垯浣犲彲鑳藉氨闇瑕佽嚜宸盠oadLibary璋冨叆DLL鏂囦欢锛岀劧钖庡啀镓嫔伐GetProcAddress銮峰缑瀵瑰簲鍑芥暟浜嗐傛湁浜嗗煎叆搴掳纴浣犲彧闇瑕侀摼鎺ュ 鍏ュ簱钖庢寜镦уご鏂囦欢鍑芥暟鎺ュ彛镄勫0鏄庤皟鐢ㄥ嚱鏁板氨鍙浠ヤ简銆傚煎叆搴揿拰闱欐佸簱镄勫尯鍒寰埚ぇ锛屼粬浠瀹炶川鏄涓崭竴镙风殑涓滆タ銆傞润镐佸簱链韬灏卞寘钖浜嗗疄闄呮墽琛屼唬镰併佺﹀彿琛ㄧ瓑绛夛纴钥 瀵逛簬瀵煎叆搴撹岃█锛屽叾瀹为檯镄勬墽琛屼唬镰佷綅浜庡姩镐佸簱涓锛屽煎叆搴揿彧鍖呭惈浜嗗湴鍧绗﹀彿琛ㄧ瓑锛岀‘淇濈▼搴忔垒鍒板瑰簲鍑芥暟镄勪竴浜涘熀链鍦板潃淇℃伅銆
⑵ 你好,我现在用qt中要使用了一个vs2010编译的.lib静态库。
对于C语言而言,用于连接dll的连接lib是可以通用的,dll也是可以通用的。但是静态库目前而言并不是通用的,一般的处理方式是编译成dll,然后生成连接lib(a)库,引入项目,或者使用libtdl动态加载dll文件。
静态库不可通用的原因是,基础库相差太多,objmp甚至都无法识别使用vc默认选项编译出啦的obj文件格式。另外reimp不是用于这个用途的,是为dll的连接lib(a)文件提供转换的。
对于C++而言,所有二进制代码都是不可通用的,毕竟名称修饰都相差甚远。
⑶ vs2013 c++ 调用lib需要dll文件吗
打开工程的 Projects菜单,然后在Linker/Additional Library Directories中加入lib文件所在的路径,在Input/Additional Dependencies加入lib文件名称
如(my.lib) ,然后在要使用该函数的地方加上该LIB的头文件,如#include "..\lib.h"即可(没有头文件当然就不用了),而且应用程序运行时也需要dll文件。
⑷ vs2017编译出来的lib和dll,vs2010下使用可以吗
如果是.net,只要框架版本一致就可以,如果是C++,通常要相应的运行库
⑸ 如何用 cygwin + libtool 编译出 VS 可用的 lib/dll
经过努力,发现这个连接的方法,是可以编译生成libcurl.a文件的。我的方法是将解压的curl源码放到ndk根目录。在cygwin中切换到(ndk目录)/curl。然后运行./configure命令生成curl_config.h,然后将android.mk中节点LOCAL_CFLAGS+=\$(common_CFLAGS)\-I$(LOCAL_PATH)/include\-I/usr/include补充缺少内容。然后编译,有好多警告,不过最后还是成功了。