小编oli*_*bre的帖子

Elinks还是Lynx?

请说明您的终端浏览器的原因.你为什么使用Lynx或Elinks?他们如何帮助您进行编程?

browser lynx text-based elinks

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

网址中是否允许使用方括号?

是否允许使用URL中的方括号?

我注意到Apache commons HttpClient(3.0.1)抛出IOException,wget和Firefox接受方括号.

网址示例:

http://example.com/path/to/file[3].html
Run Code Online (Sandbox Code Playgroud)

我的HTTP客户端遇到这样的URL,但我不确定是要修补代码还是抛出异常(实际应该是这样).

apache url syntax http square-bracket

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

如何从命令行获取CMake变量?

像这样的东西:

cmake --get-variable=MY_CMAKE_VARIABLE
Run Code Online (Sandbox Code Playgroud)

该变量可能存在于包含的CMake文件中.

command-line cmake

27
推荐指数
4
解决办法
2万
查看次数

maven在Linux和Windows平台上调用外部脚本

我需要在Linux和MS-Windows平台上运行外部脚本.

  1. 我使用正确的插件exec-maven-plugin吗?
  2. 有更合适的插件吗?
  3. 我应该输入什么文件名<executable>....</executable>

    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>exec-maven-plugin</artifactId>
      <version>1.2.1</version>
        <executions>
            <execution>
                <id>compile-jni</id>
                <phase>compile</phase>
                <goals>
                    <goal>exec</goal>
                </goals>
                <configuration>
                    <executable>./compile-jni</executable>
                    <workingDirectory>${basedir}/src/main/cpp</workingDirectory>
                </configuration>
            </execution>
        </executions>
    </plugin>
    
    Run Code Online (Sandbox Code Playgroud)

我在MakefileLinux/MS-Windows这两个平台上使用相同的功能

我的剧本compile-jni.bat:

call "%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
bash -c "make" 
Run Code Online (Sandbox Code Playgroud)

我的剧本compile-jni.sh:

#!/bin/sh
make
Run Code Online (Sandbox Code Playgroud)

更新:

两位同事提出了替代方案:

  1. 使用一个变量script.extension 的变化<executable>./compile-jni${script.extension}</executable>pom.xml ,并在命令行中添加变量mvn compile -Dscript.extention=.bat

  2. 或者在调用maven之前设置Visual Studio环境变量:

    call "C:\%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
    mvn compile #(the same script 'bash -c "make"' works on both platforms)
    
    Run Code Online (Sandbox Code Playgroud)

但在这两种解决方案中,Eclipse用户可能会被卡住......我仍然在寻找一种自动而优雅的解决方案......

shell batch-file pom.xml maven exec-maven-plugin

23
推荐指数
2
解决办法
3万
查看次数

如何在CMake中更改LD_LIBRARY_PATH?

我有一个本地共享库,它不在$ LD_LIBRARY_PATH中.我想运行我的可执行文件,但由于它无法在系统文件夹中找到共享库,因此在加载共享库时输出"错误".

可能的解决方法是导出包含本地库文件夹的新LD_LIBRARY_PATH.

如何在CMake中自动导出此环境变量?

cmake shared-libraries dynamic-linking

22
推荐指数
2
解决办法
2万
查看次数

为什么$'\ 0'或$'\ x0'是一个空字符串?应该是空字符,不是吗?

允许扩展.我说:$'string'man bash

表格的字是特别对待的.单词扩展为,使用ANSI C标准指定的反斜杠转义字符替换.反斜杠转义序列(如果存在)按如下方式解码: alert(bell) 退格 转义字符 换页 新行 回车 水平制表符 垂直制表符 反斜杠 单引号 双引号 八位字符,其值为八进制值(一到三个)数字) 八位字符,其值为十六进制值$'string'string
\a
\b
\e
\E
\f
\n
\r
\t
\v
\
\'
\"
\nnnnnn
\xHHHH(一个或两个十六进制数字) 一个控制字符
\cxx

扩展结果是单引号,好像美元符号不存在一样.

为什么不能转化$'\0'$'\x0'成空字符?
有记录吗?有原因吗?(这是一个功能或限制,甚至是一个错误吗?)

$ hexdump -c <<< _$'\0'$'\x1\x2\x3\x4_'
0000000   _ 001 002 003 004   _  \n
0000007
Run Code Online (Sandbox Code Playgroud)

echo 给出了预期的结果:

> hexdump -c < <( …
Run Code Online (Sandbox Code Playgroud)

string bash echo expansion dollar-sign

20
推荐指数
2
解决办法
1万
查看次数

非模板类中的函数模板

我确信这是可能的,但我不能这样做,这是:我如何在非模板类中定义函数模板?我尝试过这样的事情:

class Stack_T
{
    private:
        void* _my_area;
        static const int _num_of_objects = 10;

    public:
        // Allocates space for objects added to stack
        explicit Stack_T(size_t);
        virtual ~Stack_T(void);

        // Puts object onto stack
        template<class T>
        void put(const T&);

        // Gets last added object to the stack
        template<class T>
        T& get()const;

        // Removes last added object from the stack
        template<class T>
        void remove(const T&);
};

template<class T> //SOMETHING WRONG WITH THIS DEFINITION
void Stack_T::put<T>(const T& obj)
{
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我得到这个错误的消息:

'错误1错误C2768:'Stack_T :: put':非法使用显式模板参数'
谢谢

c++ templates function

14
推荐指数
1
解决办法
2万
查看次数

如何使用gnu Make确定--load-average的良好值?

在Make this flag中存在:

-l [load], - load-average [= load]指定如果有其他作业正在运行且负载平均值至少为load(浮点数),则不应启动新作业(命令).如果没有参数,则删除先前的加载限制.

您是否有一个很好的策略来确定负载限制的值?我的机器似乎差别很大.

gcc load gnu-make command-line-arguments

13
推荐指数
2
解决办法
4035
查看次数

如何在后台启动和运行外部脚本?

我尝试了这两种方法:

os.system("python test.py")

subprocess.Popen("python test.py", shell=True)
Run Code Online (Sandbox Code Playgroud)

两种方法都需要等到test.py完成才能阻止主进程.我知道"nohup"可以胜任这项工作.是否有Python方法来启动test.py或任何其他shell脚本并让它在后台运行?

假设test.py是这样的:

for i in range(0, 1000000):
    print i
Run Code Online (Sandbox Code Playgroud)

os.system()或subprocess.Popen()都将阻止主程序,直到显示1000000行输出.我想要的是让test.py以静默方式运行并仅显示主程序输出.当test.py仍在运行时,主程序可能会安静.

python external-process background-process

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

如果满足两个条件,则执行Ant任务

上面的脚本使用Ant-1.7.1核心语句实现:if dir_is_empty then git-clone else git-fetch

<target name="update" depends="git.clone, git.fetch" />

<target name="check.dir">
  <fileset dir="${dir}" id="fileset"/>
  <pathconvert refid="fileset" property="dir.contains-files" setonempty="false"/>
</target>

<target name="git.clone" depends="check.dir" unless="dir.contains-files">
  <exec executable="git">
    <arg value="clone"/>
    <arg value="${repo}"/>
    <arg value="${dir}"/>
  </exec>
</target>

<target name="git.fetch" depends="check.dir" if="dir.contains-files" >
  <exec executable="git" dir="${dir}">
    <arg value="fetch"/>
  </exec>
</target>
Run Code Online (Sandbox Code Playgroud)

(见我的其他帖子)


但是如何target通过两个条件实现启用?

if dir_does_not_exist or dir_is_empty then git-clone else git-fetch

我目前的尝试:

<target name="git.clone" 
        depends="chk.exist, chk.empty" 
        unless="!dir.exist || dir.noempty" >
  [...]
</target>

<target name="chk.exist">
  <condition property="dir.exist">
    <available …
Run Code Online (Sandbox Code Playgroud)

ant conditional ant-contrib is-empty

11
推荐指数
1
解决办法
2万
查看次数