有没有一种简单的方法来编写可以访问其Git版本哈希的C代码?
我在C中编写软件以在实验室环境中收集科学数据.我的代码将它收集的数据记录在.yaml文件中以供以后分析.我的实验每天都在变化,我经常需要修改代码.为了跟踪修订,我使用了一个git存储库.
我希望能够在我的.yaml数据文件中包含Git版本哈希作为注释.这样,我可以查看.yaml文件并确切地知道用于生成该文件中显示的数据的代码.有一种简单的方法可以自动执行此操作吗?
即使我没有新的提交推送,如何强制在服务器上git运行post-receive挂钩?
我使用git自动将网站部署到服务器.我在服务器的受保护区域的裸回购和post-receive,检查出对某些文件的内容和系统复制到一个钩子public_html文件夹.(受本教程启发)
我厌倦了post-receive在服务器上手动修改钩子,所以我的post-receive钩子现在实际上从repo复制了自己的新版本:
#!/bin/sh
rm -rf ~/../protected/*
GIT_WORK_TREE=~/../protected git checkout -f
# Rewrite over this file with any updates from the post-receive file
cp ~/../protected/post-receive hooks/post-receive
# Delete public_html
# Copy stuff public_html
Run Code Online (Sandbox Code Playgroud)
当然,问题是新的post-receive钩子永远不会运行.一个看似简单的解决方案只是再次推动,但现在一切都已经是最新的.这很烦人,因为每次我更新post-receive钩子时都需要我伪造一个新的提交.有没有办法调用post-receive钩子而不伪造提交或ssh进入?
git push
git push -f
Run Code Online (Sandbox Code Playgroud) 我想下载一个公共的Amazon EC2 AMI,比如这个(Ubuntu Lucid),这样我就可以通过编程方式提取其内容.
我该怎么做呢?我怀疑某处有一个S3地址?这个博客文章看起来像曾经描述过这个过程,但链接似乎不再有效.
到目前为止,我只能找到有关如何在AWS中移动EC2实例的解释.我相信清单文件是这个难题的重要组成部分.
我想分发可执行文件和我的源代码.我的源代码全部托管在GitHub上.是否可以将可执行文件和安装程序添加到我的GitHub项目页面而不将它们添加到我的git存储库?
请注意,由于某种原因,GitHub停止了此功能.请参阅下面的Justin Dearing的回答.
我在python中实现备份脚本.我试图让事情跨平台.我听说有一个基于python的rsync实现:http://pypi.python.org/pypi/rsync.py
但我似乎无法在任何地方找到它.我发现的所有下载链接都已死亡.有谁知道我在哪里可以找到rsync.py程序?
目前我正在使用Windows的unison,但我想尝试rsync.py
Windows XP上的g ++和minGW可以使用Windows SDK吗?
具体来说,为什么g ++无法编译:
#include <stdio.h>
#include <windows.h>
int main(void) {
printf("!!!Hello World!!!");
return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)
我尝试通过运行编译:
g++ -c -Wall Test.cpp -IC:/Program\ Files/Microsoft\ Platform\ SDK/Include/
Run Code Online (Sandbox Code Playgroud)
我从一开始就得到了一连串的编译错误
winnt.h:666:2: #error Must define a target architecture.
Run Code Online (Sandbox Code Playgroud)
我已经安装了Windows Server 2003 SP1平台SDK
我正在研究一个大型的实时图像处理软件项目,到目前为止已使用g ++,minGW和gnu make文件(手工编写).对于新功能,我需要与具有专为Visual Studio设计的SDK的帧抓取器连接.framegrabber SDK依赖于Windows SDK中的头文件.
我需要学习Visual Studio还是有其他方法?
可能重复:
C编程:free如何知道要释放多少?
在C语言编程时,我经常malloc()用来分配内存并free()释放它:
MyObject* objArr= (MyObject*) malloc(sizeof(MyObject)*numberOfObjects);
/** Do stuff **/
free(objArr);
Run Code Online (Sandbox Code Playgroud)
怎么free()知道释放多少内存?是否malloc()在某处创建了一个表来记住指针以及每个指针指向的内存量?
如果是这种情况,free()如果我重命名指针会失败吗?例如:
MyObject* objArr= (MyObject*) malloc(sizeof(MyObject)*numberOfObjects);
MyObject* newPtr= objArr;
free(newPtr); /** Does this fail? **/
Run Code Online (Sandbox Code Playgroud)
如果我增加指针然后运行会发生什么free()?例如:
MyObject* objArr= (MyObject*) malloc(sizeof(MyObject)*numberOfObjects);
newPtr++;
free(newPtr); /** What happens now? **/
Run Code Online (Sandbox Code Playgroud)
它会在原始数组的末尾解除分配一块额外的内存吗?
我有一个循环从250fps的高速framegrabbger中获取图像.
/** Loop processes 250 video frames per second **/
while(1){
AcquireFrame();
DoProcessing();
TakeAction();
}
Run Code Online (Sandbox Code Playgroud)
同时,我希望用户能够监控正在发生的事情.用户只需要以大约30 fps(或更低)的速度查看图像.如何设置第二个线程,每隔一段时间显示当前帧?
Thread(){
cvShowImage();
Wait(30); /** Wait for 30 ms **/
}
Run Code Online (Sandbox Code Playgroud)
我在使用MinGW,gcc和OpenCV 1.1的四核Intel机器的Windows上.主要标准是显示线程必须尽可能少地离开主处理循环.每毫秒都很重要.
我已经尝试使用CreateThread()创建一个新线程cvShowImage()和cvWaitKey(),但显然这些功能不是线程安全的.
我正在考虑使用OpenMP,但有些人报告了OpenMP和OpenCV的问题.我也正在考虑尝试使用DirectX directDraw,因为它显然非常快.但它看起来很复杂,显然使用Windows DLL与MinGw有问题.
哪些途径是最好的起点?
我用MATLAB绘制了一条迹线plot().我想添加一个右y轴和一组不同的刻度线(线性缩放).这可能吗?