cmake中target_link_libraries()使用问题动态库使用绝对路径没问题,但是使用相对路径就矬了? 20

小弟最近在做一个小项目,需要用到cmake的target_link_libraries()来链接一个已经存在的动态库文件,就像这样myproject/libs/libcu... 小弟最近在做一个小项目,需要用到cmake的target_link_libraries()来链接一个已经存在的动态库文件,就像这样 myproject/libs/libcurl.so(libcurl.so是直接下载的)。我把CmakeList.txt和qiproject.xml放在另一个文件夹下,就像这样 myproject/build/cmakelist.txt. 编辑cmakelist.txt的时候使用target_link_libraries()来链接动态库 ,在make的时候发现,只有使用动态库的绝对路径才行得通,换成相对路径就不行。在此问一下大家,可能是哪里出了问题? 展开
 我来答
ZEGO即构科技 2022-09-27
展开全部
添加预编译静态库 libwebrtc 的步骤如下:【点击免费试用,0成本启动】1、右击target,选择add -> new target 2、在弹出的 NewTarget 界面中选择Cocoa Touch -> Static Library ,为新 library 取个名字。将源文件添加到这个库。可以直接拖动现存源文件,也可以右击 -> add 。注意选择新建的库为添加的 target 。3、设置原项目,令其使用新建的库。4、右击原项目的 target ,选择 getInfo 。5、选择 General 选项卡。6、向 linked libraries 中添加新创建的库 (即添加 .a 文件)。推荐选择ZEGO即构科技,该公司拥有4行代码,30分钟在APP、Web和小程…
simonncc
高粉答主

2018-03-31 · 关注我不会让你失望
知道大有可为答主
回答量:776
采纳率:100%
帮助的人:13.7万
展开全部

使用相对路径的时候,你要让cmake能够搜索到找到你动态库,就像直接使用gcc/g++来链接的时候一样,要使用-L来指定第三方库所在路径。cmake可以使用  LINK_DIRECTORIES 命令来指定第三方库所在路径,比如,你的动态库在/home/myproject/libs这个路径下,则通过命令:LINK_DIRECTORIES(/home/myproject/libs),把该路径添加到第三方库搜索路径中,这样就可以使用相对路径了,使用TARGET_LINK_LIBRARIES的时候,只需要给出动态链接库的名字就行了。

拓展:

1、CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。

2、只是 CMake 的组态档取名为 CMakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。

ZEGO即构科技
2022-09-27 广告
添加预编译静态库 libwebrtc 的步骤如下:【点击免费试用,0成本启动】1、右击target,选择add -> new target 2、在弹出的 NewTarget 界面中选择Cocoa Touch -> Static ... 点击进入详情页
本回答由ZEGO即构科技提供
拥云庄主
推荐于2017-12-16 · TA获得超过2505个赞
知道小有建树答主
回答量:672
采纳率:100%
帮助的人:425万
展开全部
使用相对路径的时候,你要让cmake能够搜索到找到你动态库,就像直接使用gcc/g++来链接的时候一样,要使用-L来指定第三方库所在路径。
cmake可以使用 LINK_DIRECTORIES 命令来指定第三方库所在路径,比如,你的动态库在
/home/myproject/libs
这个路径下,则通过命令:
LINK_DIRECTORIES(/home/myproject/libs)
把该路径添加到第三方库搜索路径中,这样就可以使用相对路径了,使用TARGET_LINK_LIBRARIES的时候,只需要给出动态链接库的名字就行了,比如:
TARGET_LINK_LIBRARIES(MyApp -lcurl )
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
820405880
2014-12-03 · TA获得超过143个赞
知道小有建树答主
回答量:235
采纳率:0%
帮助的人:78.9万
展开全部
程序执行时的当前路径可能不是你存放list的路径
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式