小编Joh*_*han的帖子

Python的os.makedirs在我的路径中不理解"〜"

在我的路上,我有一点问题.

这个代码示例创建了一些名为"〜/ 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的系统.

python path

137
推荐指数
3
解决办法
4万
查看次数

GNU make:作业数量是否应该等于系统中的CPU核心数量?

关于GNU make中的作业数量是否应该等于核心数量似乎存在争议,或者如果您可以通过添加一个可以排队等待而其他人"工作"的额外作业来优化构建时间.

使用-j4-j5四核系统更好吗?

您是否看过(或已完成)支持其中一种或哪种的基准测试?

makefile gnu-make

80
推荐指数
6
解决办法
6万
查看次数

移动时计算机之间的git存储库同步?

假设我有台式电脑和笔记本电脑,有时我在桌面上工作,有时我在笔记本电脑上工作.

来回移动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)

git version-control

79
推荐指数
3
解决办法
4万
查看次数

gcc -ggdb和gcc -g有什么区别

当我使用gcc编译C程序时,我通常会使用-g一些调试信息到elf文件中,以便gdb可以在需要时帮助我.

但是,我注意到有些程序使用-ggdb,因为它应该使调试信息更友好.

它们有何不同,建议使用哪些?


注意:指向调试程序或GCC的选项的链接,http://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html#Debugging-Options

gcc gdb

75
推荐指数
5
解决办法
5万
查看次数

如何在没有附加空格和换行符的情况下调用qDebug?

我正在使用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)

但请注意,我还没有找到摆脱结束换行符的方法.

/谢谢

c++ qt qdebug

56
推荐指数
6
解决办法
5万
查看次数

MySQL可以将存储的UTC时间转换为本地时区吗?

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安装缺少这个功能,请小心使用.

mysql sql timezone convert-tz

50
推荐指数
5
解决办法
9万
查看次数

什么是C/C++程序及其插件DLL的最佳免费内存泄漏检测器?

我有.exe加载的.exe和许多插件.dll模块.(我有两者的来源.)跨平台(带源)解决方案是理想的,但平台可以缩小到WinXP和Visual Studio(在我的情况下为7.1/2003).

内置的VS泄漏检测器只给出了调用new/malloc的行,但是我有一个分配包装器,所以完整的符号堆栈跟踪是最好的.

检测器还能够检测.exe及其附带的插件.dll模块中的泄漏.

c c++ memory-leaks visual-studio

48
推荐指数
3
解决办法
10万
查看次数

arm gcc toolchain as arm-elf or arm-none-eabi,有什么区别?

当你构建一个gcc工具链时,有可能将它构建为arm-elf或arm-none-eabi,但有什么区别?

我今天使用的是eabi,但这只是因为其他人似乎都这样做了......但是因为这是一个非常糟糕的论点,所以理解它们的区别真的很好.

注意:此工具链将交叉编译基于Cortex-M3的mcu代码:如stm32.

谢谢


一些链接:

EABI:

ELF:

gcc arm cortex-m3 elf eabi

48
推荐指数
4
解决办法
5万
查看次数

Git替代"svn info"可以包含在构建中以便追溯吗?

我正在寻找一个替代"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 Tag中描述了默认情况下的错误.

但请注意,结帐似乎仍然有效,即使这是一条错误消息.

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 …

git

46
推荐指数
4
解决办法
5万
查看次数

如何在基于Linux的系统上使用acque程序中的mqueue?

如何在基于Linux的系统上的ac程序中使用mqueue(消息队列)?

我正在寻找一些好的代码示例,可以以正确和正确的方式显示这是如何完成的,也许是一个howto.

c linux ipc mqueue

46
推荐指数
1
解决办法
8万
查看次数

标签 统计

c ×2

c++ ×2

gcc ×2

git ×2

arm ×1

convert-tz ×1

cortex-m3 ×1

eabi ×1

elf ×1

gdb ×1

gnu-make ×1

ipc ×1

linux ×1

makefile ×1

memory-leaks ×1

mqueue ×1

mysql ×1

path ×1

python ×1

qdebug ×1

qt ×1

sql ×1

timezone ×1

version-control ×1

visual-studio ×1