我正在尝试为使用libpng的应用程序创建CMake层次结构.Libpng需要zlib.
由于CMakeLists.txt与zlib和libpng一起分发,我的第一个想法是制作以下结构:
/development
CMakeLists.txt
/zlib-1.2.5
CMakeLists.txt <- provided by zlib
-sources-
-build of zlib?-
/libpng154
CMakeLists.txt <- provided by libpng
-sources-
-build of libpng?-
/myapp
CMakeLists.txt
-sources-
/build
-build of myapp-
-build of zlib?-
-build of libpng?-
Run Code Online (Sandbox Code Playgroud)
...然后,在顶级CMakeLists.txt中,放置如下内容:
project(everything)
...
add_subdirectory(zlib-1.2.5)
add_subdirectory(libpng154)
add_subdirectory(myapp)
...
Run Code Online (Sandbox Code Playgroud)
但没有运气.libpng的CMakeLists.txt执行find_package(ZLIB ...),但它不知道在哪里查看.这可以通过将zlib"安装"到/ usr在Mac OS上解决.但这不适用于Windows.
所以我想我不会进入子目录.只需编译并构建zlib和libpng,然后在遍历我自己的应用程序之前执行find_package(PNG ...)(分别编译和构建zlib和libpng(通过提供的CMakeLists.txt),至少在Mac OS上运行,但再次,只因为zlib安装到/ usr).
project(everything)
...
find_package(PNG...)
add_subdirectory(myapp)
...
Run Code Online (Sandbox Code Playgroud)
没有运气,find_package(PNG ...)失败了.我不知道如何让find_package(PNG ...)知道在哪里寻找我刚建立的libpng库.例如,对于boost,您可以设置"BOOST_ROOT"变量.libpng有什么类似的吗?
亲切的问候,
丹尼尔德克斯
我的目标是 iOS(设备和模拟器)并设置 CMake 以添加捆绑包中所需的不同资源。“xib”文件给我带来了一些问题。如果我不采取进一步操作,iPhone/iPad 模拟器运行将失败并出现错误:
Terminating app due to uncaught exception 'NSInternalInconsistencyException',
reason: 'Could not load NIB in bundle:
'NSBundle </Users/danieldekkers/Library/Application Support/iPhone Simulator/4.3.2/Applications/1C29638B-7593-4311-8F94-C8051AF90AD7/Discs.app>
(loaded)' with name 'MainWindow''
Run Code Online (Sandbox Code Playgroud)
捆绑包中缺少 NIB 文件。一个示例 (http://www.vtk.org/Wiki/CMake:OSX_InterfaceBuilderFiles) 显示,对于 OSX,您必须将 xib 文件编译为 nib 文件,并将这些文件作为构建后步骤添加到捆绑包中。所以我的猜测是 iOS 也有类似的情况。但我的问题是,...我在哪里添加编译好的 nib 文件?
我现在在 CMakeLists.txt 中执行此操作:
# We need to compile the interface builder *.xib files to *.nib files to add to the bundle
# Make sure we can find the 'ibtool' program. If we can NOT find it we skip generation …
Run Code Online (Sandbox Code Playgroud) 有谁知道为什么Xcode(4.6.3)会在复制资源阶段启动TiffUtil,而不是仅仅使用CpResource将PNG文件复制到bundle.我现在最终得到了一些正常的PNG图标和启动画面以及一些tiff.我检查了图像,它们似乎没有任何问题.
谢谢Daniel Dekkers
我是否必须理解clSetKernelArg()的OpenCL文档中arg_size参数的描述,或者我可以安全地输入:clSetKernelArg([parameter index],sizeof(A),(void*)&A)?...独立于A是什么?在我的情况下,A可能是一个结构,我不确定是否存在填充问题.
谢谢Daniel Dekkers