所以我创建了一个软件,我想打包并发布到Arch Linux用户存储库,AUR, - 请注意,我以前从未为任何发行版打包过任何东西 - 而且我还将它打包并安装在我自己的机器上通过Arch的包管理员Pacman成功,但现在我想知道我是怎么构建文件夹和文件的?
通常当我编写软件时,我使用这种结构:
建立/ | src/| 生成文件
至少,在这个软件的情况下,makefile只是编译从.rc /到build /的.cpp文件.为了制作Arch包,我还必须创建一个.rc文件,正确使用该程序作为守护进程和PKGBUILD文件,该文件告诉makepkg程序如何构建installer-package - 这两个文件,虽然,特定于Arch.如果我想将程序打包为debian,我还需要另外一组文件来执行此操作,但这些文件仅适用于debian.现在,我不能只将.rc文件和PKGBUILD文件放入程序根目录文件夹中,因为这样会"乱七八糟",特别是如果我还有用于为debian构建软件包的文件,但我在哪里放特定于发行版的文件?我需要在程序根文件夹中使用它 - 至少 - 能够跟踪它,我最初的想法是使用像distro/arch /这样的结构来获取Arch Linux特定文件,然后是PKGBUILD文件只是在程序根文件夹中运行makefile并将编译后的文件从build /复制到distro/arch /之前做了其他任何事情,但我发现我无法让PKGBUILD以这种方式工作,而且在Freenode上的#archlinux上也有人说这不是一个聪明的主意.
那么我在哪里放置发行版特定文件?如果我知道我只需要为Arch提供这个程序,那么只为Makepkg构建它很容易,但是我不喜欢将软件这样监禁,而且我也可以设想为debian等其他市长发行版提供包,所以如何在保持理智的文件结构的同时实现这一目标?
此致,Chris Buchholz
我正在寻找一个很棒的C++库来进行基本的图像处理.我需要做的是能够将图像转换为灰度,并有权读取图像的像素.
我看过OpenCV,GIL,CImg和Magick ++,但要么它们不是太好,要么我无法弄清楚如何将图像转换为图像灰度.
我正在用C++编写一个软件来控制MacBook Pro上的键盘背光,它运行Arch Linux作为主操作系统和Debian运行的funzies.该程序作为守护程序运行,现在可以打开键盘背光.下一步是让它密切关注计算机何时空闲(基于鼠标和键盘的交互)以及何时空闲一段时间,关闭背光,并且一旦注册了与键盘或鼠标的交互,再次打开背光.
我已经google了一下,但是我找不到任何可以检查最后鼠标和/或键盘交互的注册时间.
有什么想法,我怎么能做到这一点?我相信在任何Linux操作系统(也许是X?)的某些部分已经存在这样的功能,所以使用它会更好,而不是从头开始编写.
问候,...
所以我花了最近20个小时尝试在OS X 10.8下运行,我终于让它编译没有错误,但是当我尝试编译一个使用Boost.test的测试用例时,我又回来了在一个受伤的世界里.我应该提一下,我自己编译boost而不是使用二进制文件的原因是因为我想使用c ++ 11和libc ++.
当我编译boost时,我这样称为b2:
./b2 toolset=clang cxxflags="-std=c++11 -stdlib=libc++" linkflags="-std=c++11 -stdlib=libc++" link=static
Run Code Online (Sandbox Code Playgroud)
它编译所有文件.然后我有这段代码
#define BOOST_TEST_DYN_LINK
#define BOOST_TEST_MODULE Addition
#include <boost/test/unit_test.hpp>
int addition(int i, int j)
{
return i + j;
}
BOOST_AUTO_TEST_CASE(universeInOrder)
{
BOOST_CHECK(addition(2, 2) == 4);
}
Run Code Online (Sandbox Code Playgroud)
我尝试编译
clang++ -std=c++11 -stdlib=libc++ -g -Wall -v -I/Users/cb/Downloads/boost_1_51_0 tests/arithmetic.cpp -o tests/arithmetic /Users/cb/Downloads/boost_1_51_0/stage/lib/libboost_unit_test_framework.a`
Run Code Online (Sandbox Code Playgroud)
它失败了,给我这个错误:
"/usr/bin/ld" -demangle -dynamic -arch x86_64 -macosx_version_min 10.8.0 -o tests/arithmetic /var/folders/pg/4wcxn1j12c3188vqrv0x4w9r0000gn/T/arithmetic-UFmO1B.o /Users/cb/Downloads/boost_1_51_0/stage/lib/libboost_unit_test_framework.a -lc++ -lSystem /usr/bin/../lib/clang/4.0/lib/darwin/libclang_rt.osx.a
Undefined symbols for architecture x86_64:
"boost::unit_test::unit_test_main(bool (*)(), int, char**)", referenced from:
_main in …Run Code Online (Sandbox Code Playgroud) 嘿伙计们,我已经编写了一个程序作为我的MacBook Pro的键盘背光控制器,它运行Arch,就像OS X中本身一样.程序本身很好用,但是我提供的Arch程序的rc.d脚本包,似乎没有正确打开程序...或者我认为.
可以在此处找到Arch包的源代码(rc.d脚本和PKGBUILD文件).我在/etc/rc.conf中添加了"mbpkbdbacklightctl"到守护进程的行.
会发生什么,在启动时,我看到rc.d脚本启动程序启动没有错误,键盘上的背光点亮,这意味着程序也运行正常,但是当gdm开始记录时在gnome中,程序似乎已经被终止了.我没有找到任何错误记录,但如果没有在20秒或更长时间内注册键盘或鼠标事件,程序将关闭背光,并在注册时重新打开它,这不会发生在gdm上,也不会发生在侏儒.此外,当我到达gnome并执行a时pidof -o %PPID /usr/bin/mbpkbdbacklightctl,它不会返回任何表示程序已终止的内容.当gnome启动时,我必须重新启动rc.d脚本才能使事情正常运行.
我似乎无法掌握该程序自终止后会发生什么.程序的源代码可以在这里找到,但我相信错误是在rc.d脚本中,它可能无法正常启动程序,因为它可以通过gdm启动"生存".
有什么想法可以发生什么?
此致,Chris Buchholz