user-0 提问: 请问为什么#pragma comment (lib, "ws2_32.lib")不成功？

回复:
user: user-1
content: 引用 7 楼 weixin_39158150 的回复:[quote=引用 6 楼 zxc024000 的回复:] [quote=引用 5 楼 weixin_39158150 的回复:] [quote=引用 4 楼 zxc024000 的回复:] [quote=引用 2 楼 weixin_39158150 的回复:] [quote=引用 1 楼 zxc024000 的回复:] GCC应该是没有#pragma comment (lib, xxxx)，这种用法的。至少现在用的5.x版本没有看到，不知道以后会不会支持。 一般gcc都是使用-lxxx，这种的（这句话，本身就等同于#pragma comment）。 #pragma引用lib库是clang的用法吗？还有就是，gcc可以引用lib吗？[/quote]  #pragma comment (lib, xxxx) 这种是VS的用法，也就是微软的那一套（CL编译器） clang用过些，遵循的GUN那一套，比gcc/g++编译得快，引用lib方式和gcc/g++差不多的。 gcc直接引用xxx.lib的话，应该是不可以的。需要转成.a，去引用。  .lib和.dll是windows的，.so和.a是UNIX(Linux)的。两者应该不是通用的，否则Windows和Unix就可以无缝兼容了。[/quote]  gcc不是可以通过windows API 同dll吗？[/quote]  你说的是gcc编dll吧，确实可以编给windows调用（好像编译链接时，加什么参数吧），但应该不能包含Linux独有的api吧。反过来，Windows使用CL编出来的dll，给Linux下的gcc调用，还是需要转一下吧（不包含Window独有的API）。。。Windows版的GCC（mingw）没有用过。  总之，不管怎么说，直接调用应该是不可以的（啥也不做），怎么也需要转一下。就像你最上面提出的问题，转一下.a（静态库），就好使了。 [/quote] 也就是说，gcc也是可以用lib和dll，只要编译的过程中不出现另一个操作系统的api，而只用同一种api就可以了是吗？[/quote] 理论上是可以的，只不过有些时候需要转一下。但是实际中，在项目里，很少看到有这么用的。。。

user: user-0
content: 引用 6 楼 zxc024000 的回复:[quote=引用 5 楼 weixin_39158150 的回复:] [quote=引用 4 楼 zxc024000 的回复:] [quote=引用 2 楼 weixin_39158150 的回复:] [quote=引用 1 楼 zxc024000 的回复:] GCC应该是没有#pragma comment (lib, xxxx)，这种用法的。至少现在用的5.x版本没有看到，不知道以后会不会支持。 一般gcc都是使用-lxxx，这种的（这句话，本身就等同于#pragma comment）。 #pragma引用lib库是clang的用法吗？还有就是，gcc可以引用lib吗？[/quote]  #pragma comment (lib, xxxx) 这种是VS的用法，也就是微软的那一套（CL编译器） clang用过些，遵循的GUN那一套，比gcc/g++编译得快，引用lib方式和gcc/g++差不多的。 gcc直接引用xxx.lib的话，应该是不可以的。需要转成.a，去引用。  .lib和.dll是windows的，.so和.a是UNIX(Linux)的。两者应该不是通用的，否则Windows和Unix就可以无缝兼容了。[/quote]  gcc不是可以通过windows API 同dll吗？[/quote]  你说的是gcc编dll吧，确实可以编给windows调用（好像编译链接时，加什么参数吧），但应该不能包含Linux独有的api吧。反过来，Windows使用CL编出来的dll，给Linux下的gcc调用，还是需要转一下吧（不包含Window独有的API）。。。Windows版的GCC（mingw）没有用过。  总之，不管怎么说，直接调用应该是不可以的（啥也不做），怎么也需要转一下。就像你最上面提出的问题，转一下.a（静态库），就好使了。 [/quote] 也就是说，gcc也是可以用lib和dll，只要编译的过程中不出现另一个操作系统的api，而只用同一种api就可以了是吗？

user: user-1
content: 引用 2 楼 weixin_39158150 的回复:[quote=引用 1 楼 zxc024000 的回复:] GCC应该是没有#pragma comment (lib, xxxx)，这种用法的。至少现在用的5.x版本没有看到，不知道以后会不会支持。 一般gcc都是使用-lxxx，这种的（这句话，本身就等同于#pragma comment）。 #pragma引用lib库是clang的用法吗？还有就是，gcc可以引用lib吗？[/quote]  #pragma comment (lib, xxxx) 这种是VS的用法，也就是微软的那一套（CL编译器） clang用过些，遵循的GUN那一套，比gcc/g++编译得快，引用lib方式和gcc/g++差不多的。 gcc直接引用xxx.lib的话，应该是不可以的。需要转成.a，去引用。  .lib和.dll是windows的，.so和.a是UNIX(Linux)的。两者应该不是通用的，否则Windows和Unix就可以无缝兼容了。

user: user-1
content: 引用 5 楼 weixin_39158150 的回复:[quote=引用 4 楼 zxc024000 的回复:] [quote=引用 2 楼 weixin_39158150 的回复:] [quote=引用 1 楼 zxc024000 的回复:] GCC应该是没有#pragma comment (lib, xxxx)，这种用法的。至少现在用的5.x版本没有看到，不知道以后会不会支持。 一般gcc都是使用-lxxx，这种的（这句话，本身就等同于#pragma comment）。 #pragma引用lib库是clang的用法吗？还有就是，gcc可以引用lib吗？[/quote]  #pragma comment (lib, xxxx) 这种是VS的用法，也就是微软的那一套（CL编译器） clang用过些，遵循的GUN那一套，比gcc/g++编译得快，引用lib方式和gcc/g++差不多的。 gcc直接引用xxx.lib的话，应该是不可以的。需要转成.a，去引用。  .lib和.dll是windows的，.so和.a是UNIX(Linux)的。两者应该不是通用的，否则Windows和Unix就可以无缝兼容了。[/quote]  gcc不是可以通过windows API 同dll吗？[/quote]  你说的是gcc编dll吧，确实可以编给windows调用（好像编译链接时，加什么参数吧），但应该不能包含Linux独有的api吧。反过来，Windows使用CL编出来的dll，给Linux下的gcc调用，还是需要转一下吧（不包含Window独有的API）。。。Windows版的GCC（mingw）没有用过。  总之，不管怎么说，直接调用应该是不可以的（啥也不做），怎么也需要转一下。就像你最上面提出的问题，转一下.a（静态库），就好使了。

user: user-0
content: 引用 4 楼 zxc024000 的回复:[quote=引用 2 楼 weixin_39158150 的回复:] [quote=引用 1 楼 zxc024000 的回复:] GCC应该是没有#pragma comment (lib, xxxx)，这种用法的。至少现在用的5.x版本没有看到，不知道以后会不会支持。 一般gcc都是使用-lxxx，这种的（这句话，本身就等同于#pragma comment）。 #pragma引用lib库是clang的用法吗？还有就是，gcc可以引用lib吗？[/quote]  #pragma comment (lib, xxxx) 这种是VS的用法，也就是微软的那一套（CL编译器） clang用过些，遵循的GUN那一套，比gcc/g++编译得快，引用lib方式和gcc/g++差不多的。 gcc直接引用xxx.lib的话，应该是不可以的。需要转成.a，去引用。  .lib和.dll是windows的，.so和.a是UNIX(Linux)的。两者应该不是通用的，否则Windows和Unix就可以无缝兼容了。[/quote]  gcc不是可以通过windows API 同dll吗？

user: user-2
content: -lpthread 这种。遵守对应工具的规则即可。

user: user-0
content: 引用 1 楼 zxc024000 的回复:GCC应该是没有#pragma comment (lib, xxxx)，这种用法的。至少现在用的5.x版本没有看到，不知道以后会不会支持。 一般gcc都是使用-lxxx，这种的（这句话，本身就等同于#pragma comment）。 #pragma引用lib库是clang的用法吗？还有就是，gcc可以引用lib吗？

user: user-1
content: GCC应该是没有#pragma comment (lib, xxxx)，这种用法的。至少现在用的5.x版本没有看到，不知道以后会不会支持。 一般gcc都是使用-lxxx，这种的（这句话，本身就等同于#pragma comment）。