关于 CMake CMAKE_EXE_LINKER_FLAGS 选项的小坑

作者分享了在使用CMake和CLion开发过程中遇到的问题,关于链接库的困惑和对网络上不准确教程的吐槽。他发现CMake处理-dynamic编译器标志的方法复杂,推荐使用target_link_libraries进行正确链接。
摘要由CSDN通过智能技术生成

之前都没用过 CMake,最近因为需要用 CLion,CLion 基于 CMake 来开发项目,所以肯定要写 CMakeLists,因为这个,遇到不少问题。最近一个项目里的 CMakeList.txt 是在网上找来的例子改的,恕我直言,网上的东西是真不靠谱,昨天一篇文章我也是在吐槽,可能是计算机太热门了,什么牛鬼蛇神都往计算机来凑热闹,文章你扒我我扒你(特别是某SDN)所以我现在把文章也传到某SDN免得被人100%抄袭,错误一传十十传百,我也不想多说了,多读点书吧一个个的,别发一些误导人的文章(所谓的教程)了!

如果自己的 exe 要到别人的电脑上运行,那就需要相应的链接库,昨天我把我的程序发给朋友,就出现了如图所示的情况:

GTNCJ4LA6RYSPIZ539.png

找不到 libwinpthread-1.dll 其实之前我用 VSCode 的时候也遇到了,只需要将 libstdc++ 和 libgcc 静态链接就行了,谁知 CMake 在处理 -dynamic 编译器标志的方式方面做得很奇怪,使得 -Wl,-Bstatic -lstdc++ -lwinpthread -Wl,-Bdynamic 解决方案不起作用:

set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值