我希望CMake找到add_executable的头文件,并找到target_link_libraries的.so文件.
我想找的头文件是lcm-cpp.hpp(在ubunthu上)
ls /usr/local/include/lcm/
eventlog.h lcm_coretypes.h lcm-cpp.hpp lcm-cpp-impl.hpp lcm.h
Run Code Online (Sandbox Code Playgroud)
我项目根目录中的CMakeLists.txt文件
cmake_minimum_required (VERSION 2.6)
project (libFoo)
include_directories(include /usr/local/include/lcm/)
set(PROJECT_SRC
src/Foo.cpp )
set(PROJECT_H
include/Foo.hpp )
find_library(LCM_LIBRARY
NAMES liblcm.so
PATHS
/usr/local/lib/
)
add_library(liblcm STATIC IMPORTED)
add_library(foo_lib ${PROJECT_SRC} ${PROJECT_H})
add_executable(foo_lcm src/lcm_foo.cpp ${PROJECT_H} lcm-cpp.hpp)
Run Code Online (Sandbox Code Playgroud)
我得到的错误:
Cannot find source file:
lcm-cpp.hpp
Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
.hxx .in .txx
Run Code Online (Sandbox Code Playgroud) 我正在寻找有关如何为我的java程序管理许多不同参数设置的具体想法.我知道这个问题有点分散,但我需要一些关于大局的想法,以便我的代码变得更易于维护.
我的项目所做的是对数据执行许多处理步骤,主要是文本.这些处理步骤是通常具有许多设置的不同复杂度的算法.我还想更改配置文件使用的处理步骤.
我的程序的原因是进行可重复的实验,因此我需要能够获得代码不同部分中使用的所有参数的完整视图,最好是格式良好.
在这个(原型)阶段,我有源代码中的设置,如:
public static final param1=0.35;
Run Code Online (Sandbox Code Playgroud)
并且负责某个处理步骤的每个类都有自己的硬编码设置.它实际上非常可怕,因为没有简单的方法来改变事物,甚至没有看到做了什么以及使用什么参数/设置.
我的想法是为所有设置提供中央键/值存储,这些设置也支持转储所有设置.例:
k:"classA_parameter1",v:"0.35"
k:"classC_parameter5",v:"false"
Run Code Online (Sandbox Code Playgroud)
但是,我真的不想将参数存储为字符串,而是将它们与实际的java类或对象相关联.
拥有一个管理一切的单一"SettingsManager"是否更聪明.或者在main可以访问的每个类中有一个SettingsManager对象?我真的不喜欢存储设置的字符串描述,但我看不到任何其他方式(假设一个设置是使用的SAXparser实现,另一个参数是双倍,例如百分比),因为我真的不想存储它们作为对象并投射它们.
非常感谢有关相关设计模式的页面的经验和链接.
为了澄清,我的实验可以看作是一系列处理来自文件/数据库的数据的算法.这些算法根据其在整个过程中的任务分组为不同的类,例如
Experiment //main
InternetLookup //class that controls e.g. web scraping
ThreadedWebScraper
LanguageDetection //from "text analysis" package
Statistics //Calculate and store statistics
DatabaseAccess
DecisionMaking //using the data that we have processed earlier, make decisions (machine learning)
BuildModel
Evaluate
Run Code Online (Sandbox Code Playgroud)
每个最低级别的类都有参数并且不同但我仍然想要查看正在发生的所有事情.
我有一个具有随机引擎生成器对象和函数的类,它返回表示不同分布但使用相同生成器的函数.
foo.hpp:
class Foo {
private:
default_random_engine generator;
function<float()> sample_pdf1();
Run Code Online (Sandbox Code Playgroud)
Foo.cpp中:
function<float()> Foo::sample_pdf1() {
float mean = 3.0f;
float stddev = 1.0f;
normal_distribution<float> dist(mean,stddev);
return bind(dist,generator);
}
Run Code Online (Sandbox Code Playgroud)
如果我做:
Foo myFoo;
cout << myFoo.sample_pdf1()() << endl;
cout << myFoo.sample_pdf1()() << endl;
Run Code Online (Sandbox Code Playgroud)
两个样本都是相同的(总是),这不是我想要的.这里有什么问题?生成器是否被绑定(dist,generator)?
还要注意这个例子是简化的,我想要做的是给sample_pdf1()不同的参数,这些参数会产生不同的均值和标准偏差(线性高斯).