我有下一个代码:
object a,b,c;
fun (a);
fun (b);
fun (c);
Run Code Online (Sandbox Code Playgroud)
我想知道是否有任何方法可以在C++ 98或C++ 11中做类似的事情来:
call_fun_with (fun, a, b, c);
Run Code Online (Sandbox Code Playgroud)
谢谢
我正在使用Pthread在C++中开发一个多线程程序,我需要在每个线程中分配本地内存.在谷歌搜索后,我发现了pthread_key_t类型,这是一种允许您在TLS中分配内存的地图.
所以我的问题是线程函数中的局部变量和pthread_key_t之间的区别是什么?你能给出pthread_key_t的正确用法示例吗?
我目前正在使用linux在C++中开发一个分布式软件,它同时在20多个节点中执行.所以我找到的最具挑战性的问题之一是如何调试它.
我听说可以在单个gdb会话中管理多个远程会话(例如,在我创建gdb会话的主节点中以及在我使用gdbserver启动程序的每个其他节点中),是否可能?如果是这样,你能举个例子吗?你知道其他任何办法吗?
谢谢
习惯了之后就舒服GNU autoconf
了GNU automake
。我决定开始学习libtool
. 但我仍然无法清楚地看到在现实世界中使用它的好处。
据我了解,主要好处是主要的可移植性问题,即系统是否支持动态库。然而,现在大多数都是主要UNIX-like
OS
的GNU/Linux
,BSD-flavors
或者Mac OS
很难面对OS
不支持动态库或具有奇怪的库标准的情况。
所以这是我的问题,它值得使用吗libtool
?
我知道这不是开发项目的好方法,但由于我工作的一些原因,我致力于在C项目中集成C++(LRU缓存和哈希映射)中的一些数据结构.
到目前为止,我知道有一些方法可以在C++中调用C函数extern "C"
,但是从C调用C++对象(方法......)呢?
我正在使用GCC.
我正在使用GNU autotools与团队中的其他人一起开展项目.在项目中,我们对每个非平凡的C++类使用单元测试.我发现有单元测试的支持.为此我使用这个结构:
./
+ tests/
+ Makefile.am
+ classA_test.cc
....
+ classB_test.cc
+ src/
+ lib/
+ Makefile.am
Run Code Online (Sandbox Code Playgroud)
问题出现了,因为我的主Makefile.am正在使用subdir-objects选项 - 注意我没有使用递归的makefile作为源文件 - 我无法将我的变量 - 例如AM_CPPFLAGS--导出到另一个Makefile.到目前为止,我使用它:
$ make check
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,我一直在为路径和选项遇到问题
$ make distcheck
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,处理单元测试的标准方法是什么?
编辑:
只要我从tests/Makefile.am中删除subdir-objects,我就可以使用它.现在它抛出一些警告,但它编译.仍然似乎不适合处理单元测试
我想将相同的LDADD属性(单元测试库)设置为大量目标(单元测试C ++文件)。我首先尽管可能是automake具有AM_LDADD变量来将该库添加到文件中的所有目标,但事实并非如此。在一些邮件列表中,我发现了一些简短的讨论,要求添加它:http : //gnu-automake.7480.n7.nabble.com/AM-LIBS-AM-LDADD-td3698.html
我的问题是,您如何处理?有什么方法可以避免手动将LDADD属性添加到每个目标?
到目前为止,我的Makefile.am看起来像:
test1_SOURCES = ...
test1_LDADD = -llibrary
...
...
test20_SOURCES = ...
test20_LDADD = -llibrary
Run Code Online (Sandbox Code Playgroud) 我的问题非常简短,我在许多makefile中看到过这个说明:
# -*- MakeFile -*-
Run Code Online (Sandbox Code Playgroud)
我想知道它是什么,它是一些vim设置?谢谢!
我正在编写一个终端程序,使用ruby作为一个用C++和Java编写的程序的启动器,它应该在分布式系统中执行.
我想在ruby中翻译这条指令:
for i in {1..40}; do
ssh node$i program & #note & so that that process is detached
done
Run Code Online (Sandbox Code Playgroud)
这是我的红宝石代码:
class Launcher
# Other method that we can ignore
def order(command)
@nodelist.each {#Do something here}
end
end
Run Code Online (Sandbox Code Playgroud)
我想创建一个线程池,每个线程执行该命令.这是合适的方式吗?因为我研究线程不能执行"exec",因为线程共享相同的内存地址.
在我的项目中,我有一组bash脚本,它们与C/C++二进制文件一起复制到安装根目录.
问题是我必须在安装之前为每个BASH脚本运行一个命令.更具体的是,我必须用autoconf输出变量替换变量:
anyfile sed 's/ECLIPSE_PATH/@prefix@/g'
Run Code Online (Sandbox Code Playgroud)
这是在Makefile.am中定义脚本的地方
bin_SCRIPTS = file1.sh file2.sh
Run Code Online (Sandbox Code Playgroud)
我想知道是否有任何标准的方法来解决这个问题.如果不是,我想来一些黑客来处理它.谢谢!
我想出了一个解决它的黑客,这是Automake的配方:
install-data-hook:
input_path="@prefix@"; \
path=$${input_path//\//\\/}; \
for i in @bindir@/*; do \
if [[ ! `file $${i}` =~ "ELF" ]]; then \
sed -i "s/\$$ECLIPSE_PATH/$${path}/g" $$i; \
fi \
done
Run Code Online (Sandbox Code Playgroud)
但我仍然想知道是否有标准的方法来做到这一点
我在开发的webapp中遇到错误,我确信这是一个非常基本的错误.
每当我在网上运行此代码时,chrome debbuger都会返回此错误:
POST http://my_ip/server_wrapper.php 500 (Internal Server Error)
Run Code Online (Sandbox Code Playgroud)
这是JQUERY,js文件片段"
this.post = function () {
$.post ("server_wrapper.php",
{
_id: this.id,
_question: this.question,
_type: "none"
},
function (data, status) {
alert ("DATA: " + data + " status: " + status);
}
);
}
Run Code Online (Sandbox Code Playgroud)
这是php文件:
<?php
if (isset($_POST["_question"]) && isset($_POST["_type"]) && isset($_POST["_id"])) {
$question = $_POST["_question"];
$type = $_POST["_type"];
$id = $_POST["_id"];
$con = mysqli_connect ("localhost", "user", "pass", "database");
if (mysqli_connect_errno($con)) {
echo "Failed to connecto to …
Run Code Online (Sandbox Code Playgroud)