在我的路上,我有一点问题.
这个代码示例创建了一些名为"〜/ some_dir"的目录,并且不明白我想在我的主目录中创建some_dir.
my_dir = "~/some_dir"
if not os.path.exists(my_dir):
os.makedirs(my_dir)
Run Code Online (Sandbox Code Playgroud)
请注意,这是基于Linux的系统.
关于GNU make中的作业数量是否应该等于核心数量似乎存在争议,或者如果您可以通过添加一个可以排队等待而其他人"工作"的额外作业来优化构建时间.
使用-j4或-j5四核系统更好吗?
您是否看过(或已完成)支持其中一种或哪种的基准测试?
假设我有台式电脑和笔记本电脑,有时我在桌面上工作,有时我在笔记本电脑上工作.
来回移动git存储库的最简单方法是什么?
我希望git存储库是相同的,这样我就可以继续在另一台计算机上离开的地方.
我想确保我在两台计算机上都有相同的分支和标签.
谢谢约翰
注意:我知道如何使用SubVersion执行此操作,但我很好奇这将如何与git一起使用.如果它更容易,我可以使用第三台PC作为两台PC可以同步的经典服务器.
注意:两台计算机都在运行Linux.
更新:
让我们试试XANI:在服务器上使用简单的git repo,以及来自KingCrunch的push命令语法.在此示例中,有两个客户端和一个服务器.
所以让我们先创建服务器部分.
ssh user@server
mkdir -p ~/git_test/workspace
cd ~/git_test/workspace
git --bare init
Run Code Online (Sandbox Code Playgroud)
那么从其他一台计算机上我尝试用克隆获得一份repo副本:
git clone user@server:~/git_test/workspace/
Initialized empty Git repository in /home/user/git_test/repo1/workspace/.git/
warning: You appear to have cloned an empty repository.
Run Code Online (Sandbox Code Playgroud)
然后进入该repo并添加一个文件:
cd workspace/
echo "test1" > testfile1.txt
git add testfile1.txt
git commit testfile1.txt -m "Added file testfile1.txt"
git push origin master
Run Code Online (Sandbox Code Playgroud)
现在服务器使用testfile1.txt进行更新.
无论如何,让我们看看我们是否可以从其他计算机获取此文件.
mkdir -p ~/git_test/repo2
cd ~/git_test/repo2
git clone user@server:~/git_test/workspace/
cd workspace/
git pull
Run Code Online (Sandbox Code Playgroud)
现在我们可以看到测试文件.
此时,我们可以使用更多内容对其进行编辑,并再次更新服务器.
echo "test2" …Run Code Online (Sandbox Code Playgroud) 当我使用gcc编译C程序时,我通常会使用-g一些调试信息到elf文件中,以便gdb可以在需要时帮助我.
但是,我注意到有些程序使用-ggdb,因为它应该使调试信息更友好.
它们有何不同,建议使用哪些?
注意:指向调试程序或GCC的选项的链接,http://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html#Debugging-Options
我正在使用C++/Qt打印函数qDebug,但有时我想控制",空格和换行符是如何附加的,而不是使用默认的qDebug.
我们举一个简单的例子:
QString var1("some string");
int var2 = 1;
qDebug() << var1 << "=" << var2;
Run Code Online (Sandbox Code Playgroud)
这将打印
"some string" = 1
Run Code Online (Sandbox Code Playgroud)
但是,让我们说我不喜欢附加的"和空间,并希望打印看起来像
some string=1
Run Code Online (Sandbox Code Playgroud)
我怎么称呼qDebug?
注意:qDebug中有一个名为nospace的函数,但它会删除空格.但"仍然存在.
如果我用这个:
qDebug().nospace() << var1 << "=" << var2;
Run Code Online (Sandbox Code Playgroud)
我明白了:
"some string"=1
Run Code Online (Sandbox Code Playgroud)
但请注意,我还没有找到摆脱结束换行符的方法.
/谢谢
MySQL能否将存储的UTC时间直接转换为本地timezon:ed时间直接在正常的select语句中?
假设您有一些带有时间戳(UTC)的数据.
CREATE TABLE `SomeDateTable` (
`id` int(11) NOT NULL auto_increment,
`value` float NOT NULL default '0',
`date` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
)
Run Code Online (Sandbox Code Playgroud)
然后,当我
"select value, date from SomeDateTable";
Run Code Online (Sandbox Code Playgroud)
我当然得到他们存储的UTC表格中的所有日期.
但是,让我们说我希望将它们放在另一个时区(使用DST),然后我可以在select查询中添加一些魔法,以便我在所选时区中获取所有日期吗?
"select value, TIMEZONE(date, "Europe/Berlin") from SomeDateTable";
Run Code Online (Sandbox Code Playgroud)
或者我必须在顶部的其他层中执行此操作,例如在某些PHP代码中?(似乎大多数人都解决了这个问题).
谢谢约翰
如果你的MySQL安装允许你使用CONVERT_TZ它是一个非常干净的解决方案,这个例子展示了如何使用它.
SELECT CONVERT_TZ( '2010-01-01 12:00', 'UTC', 'Europe/Stockholm' )
Run Code Online (Sandbox Code Playgroud)
但是我不知道这是不是一个好方法,因为有些MySQL安装缺少这个功能,请小心使用.
我有.exe加载的.exe和许多插件.dll模块.(我有两者的来源.)跨平台(带源)解决方案是理想的,但平台可以缩小到WinXP和Visual Studio(在我的情况下为7.1/2003).
内置的VS泄漏检测器只给出了调用new/malloc的行,但是我有一个分配包装器,所以完整的符号堆栈跟踪是最好的.
检测器还能够检测.exe及其附带的插件.dll模块中的泄漏.
当你构建一个gcc工具链时,有可能将它构建为arm-elf或arm-none-eabi,但有什么区别?
我今天使用的是eabi,但这只是因为其他人似乎都这样做了......但是因为这是一个非常糟糕的论点,所以理解它们的区别真的很好.
注意:此工具链将交叉编译基于Cortex-M3的mcu代码:如stm32.
谢谢
一些链接:
EABI:
ELF:
我正在寻找一个替代"svn info"的Git.
今天我添加了一些Subversion为我提供的"svn info"命令直接进入我的构建的信息,然后将其推送到源文件中,该文件在启动时打印出来.这样我总能知道构建的来源以及如何重新获得它.
如果您有"svn info",如URL,Repository Root,Repository UUID和Revision,那么您在部署的内容和构建系统之间有一个很好的链接.如果有人报告错误,您就知道该软件的来源,并且由于该信息是自动包含的,因此人为错误的风险较小.
现在的问题是,我需要从Git获取哪些信息,以便稍后确定构建的来源?我如何使用该信息切换回该版本?
(也许我需要添加一些关于"构建计算机"的信息,因为Git已经发布了.)
更新:使用rev-parse非常有用,我有这样的东西:
cj@zap:~/git_test$ git rev-parse HEAD
72ce5f3e13c61f76fde5c58cefc85eed91b6f1f8
Run Code Online (Sandbox Code Playgroud)
有了这个神奇的数字,以后可以做到:
cj@zap:~/git_test$ git checkout 72ce5f3e13c61f76fde5c58cefc85eed91b6f1f8
Run Code Online (Sandbox Code Playgroud)
我回到了原来的位置.
更新:我认为如果我从VonC提供的脚本中取出一些部分并将它们放入我的构建文件中,我将获得我正在寻找的结果.
更新:
关于"git describe"的说明.在分支历史记录中,您需要一个真正的标记(标记-a)来完成这项工作,否则您将得到类似的结果.
fatal: cannot describe '72ce5f3e13c61f76fde5c58cefc85eed91b6f1f8'
Run Code Online (Sandbox Code Playgroud)
但请注意,结帐似乎仍然有效,即使这是一条错误消息.
git checkout 72ce5f3e13c61f76fde5c58cefc85eed91b6f1f8
Run Code Online (Sandbox Code Playgroud)
正常的事情似乎是你创建类似"ver1.0"标签的东西,然后如果你继续工作,你得到这样的东西:
cj@zap:~/git_test$ git describe
ver1.0-2-g4c7a057
cj@zap:~/git_test$ git tag -a ver2.0
cj@zap:~/git_test$ git describe
ver2.0
cj@zap:~/git_test$ git commit . -m "something..."
Created commit ac38a9d: something...
1 files changed, 1 insertions(+), 0 deletions(-)
cj@zap:~/git_test$ git describe
ver2.0-1-gac38a9d
Run Code Online (Sandbox Code Playgroud)
因此,当您describe …
如何在基于Linux的系统上的ac程序中使用mqueue(消息队列)?
我正在寻找一些好的代码示例,可以以正确和正确的方式显示这是如何完成的,也许是一个howto.