微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何用cmake在out-of-source模式下构buildzlib?

zlib将无法在源代码模式下使用cmake进行编译。

我究竟做错了什么?

这里是zlib在内部工作:

mkdir test cd test mkdir contrib mkdir build cp /tmp/zlib-1.2.8.tar.gz contrib cd contrib tar xvf zlib-1.2.8.tar.gz cd zlib-1.2.8 rm zconf.h cmake . make

这是zlib失败的源代码

将数据发送到等待ppoll的另一个进程的stdin

如何使用printf显示off_t,nlink_t,size_t和其他特殊types?

MoveFileWithProgress抛出“系统无法将文件移动到不同的磁盘驱动器” – 为什么?

在Linux设备驱动程序编程中使用struct inode和struct file传递数据的原因

无法parsing共享库中的符号,但未提供符号名称

mkdir test cd test mkdir contrib mkdir build cp /tmp/zlib-1.2.8.tar.gz contrib cd contrib tar xvf zlib-1.2.8.tar.gz cd zlib-1.2.8 rm zconf.h cd ../../ echo -e cmake_minimum_required(VERSION 2.6.4)\r\n project(MyTestApp)\r\n \r\n add_subdirectory(contrib/zlib-1.2.8)\r\n > CMakeLists.txt cd build cmake .. make

它失败:

/home/blah/test/contrib/zlib-1.2.8/test/example.c:8:18: error: zlib.h: No such file or directory

注释:我在做什么? 我正在寻求build立一个zlib的本地副本。 我不想涉及系统zlib(我的项目涉及交叉编译)。

我没有在/ usr / include中安装zlib.h。 (我卸载zlib-devel)当我有zlib-devel软件包安装(然后给我一个zlib系统安装,我不想),关于zlib.h的错误改变,而不是能够findzconf.h。

病理是一样的。 example.c文件没有find正确的头文件。 您可以很清楚地知道这是从zlib附带的CMakeLists.txt文件中发生的。 构buildzlib库的部分本身提到了ZLIB_PUBLIC_HDRS,但构build该示例的部分没有提及该variables。 因此:它不是在本地寻找标题。 (我在这里猜测)

如何刷新未决的FileSystemWatcher事件?

在Ubuntu中监控键盘按键

获取当前进程上下文的实际可执行path – Linux内核

Linux – 找不到SO文件

如何使用MinGW gdbdebugging器在Windows中debuggingC ++程序?

zlib的out-of-source构建很好。 你所做的是:创建一个新的根CMakeLists.txt ,然后使用zlib源目录作为子目录。 这是行不通的。 问题可能是使用CMake变量CMAKE_SOURCE_DIR而不是CMAKE_CURRENT_SOURCE_DIR 。 在zlib的CMakeLists.txt文件中,尝试用另一个替换一个

编辑:

在zlib附带的CMakeLists.txt中,找到这一行:

include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR})

并将其更改为:

include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐