b***i 发帖数: 3043 | 1 希望大牛们能帮忙
1. 我在Visual Studio2015里面建了一个Solution,里面我建立了多个项目。我的最终
结果是一个可执行文件,而且最后是要在Linux下用Xilinx SDK的,这个本质就是
Eclipse。
那么,我一个项目要引用另一个项目,这个被引用的叫做Utils.Include很容易搞定。
但是类的static函数必须在cpp里面实现。结果linker说找不到symbol.这个我理解,
obj在另一个目录里。那么如何才能让主项目找到这些被引用的ojb?而且,最好不用生
成lib,我就在这个solution里面使用,不用给其他工程使用。静态编译进去就行了。
以前用Qt的时候,Qmake可以自动找到这些关联,然后生成make文件。如果我用visual
studio 2015或者Xilinx SDK (Eclipse, g++4.9.2),有这样的自动的工具吗?
2. 我看到一个生成uuid的例子,里面使用了很多C++11的技术。我想能不能把一部分
变量放进class的static 成员变量?我试过,会出现很多错误。另外,这个const char
ch_set也是找不到,我也理解因为这个是常数数组自动成为static的。所以我最后把
它改成非静态函数,这样我在主项目里要构造一个变量才能呼叫这个函数。如果问题1
能够解决,是不是也就解决这个问题了?
std::string RandomID:: get_uuid32() { // if a static member function doesn't
work
std::default_random_engine rng(std::random_device{}());
std::uniform_int_distribution<> dist(0, 16);
auto randchar = [&dist, &rng]() {
const char ch_set[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8',
'9', 'a', 'b', 'c', 'd', 'e', 'f' };
return ch_set[dist(rng)]; };
//8, 4, 4, 4, 12
return random_string2(8, randchar) + "-" +
random_string2(4, randchar) + "-" +
random_string2(4, randchar) + "-" +
random_string2(4, randchar) + "-" +
random_string2(12, randchar);
} |