小编Ben*_*rst的帖子

CMake ExternalProject_Add 和并行构建

使用以下CMakeLists.txt构建脚本:

include( ExternalProject )
ExternalProject_Add( framework SOURCE_DIR ${framework_SOURCE}
                     PREFIX framework_build
                     INSTALL_DIR ${framework_DISTRIBUTION} )

    ...

add_library( ${PROJECT_NAME} SHARED ${BUILD_MANIFEST} )
add_dependencies( ${PROJECT_NAME} framework )
Run Code Online (Sandbox Code Playgroud)

当我尝试执行并行构建 ( make -j5) 时,它偶尔会由于框架中的构建工件不存在而失败。由 固定的构建顺序add_dependencies未得到遵守。

我是否误解了有关add_dependencies的文档

输出来自 cmake --graphviz=graph.dot

在此处输入图片说明

c++ makefile cmake parallel-builds

6
推荐指数
1
解决办法
2193
查看次数

提升插件选择

我希望在我们当前的应用程序(Unix,C++)中实现一个插件架构,并且一直在审查Boost库中的选项(待批准).

编辑:我想在运行时动态添加类.

Boost.Plugin

Boost.Reflection

Boost.Extension

我想知道每个人对这些和其他实现的经验/意见是什么.

c++ unix plugins boost

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

clang ++和u16string

这段简单的代码和最新的clang ++让我度过了一段难忘的时光

#include <stdio.h>
#include <string>

using std::u16string;


int main ( int argc, char** argv )
{
    u16string s16 = u"?????????";

    return EXIT_SUCCESS;
}


Ben-iMac:Desktop Ben$ clang++ -std=c++0x -stdlib=libc++ main.cpp -o main
main.cpp:15:21: error: use of undeclared identifier 'u'
    u16string s16 = u"?????????"
Run Code Online (Sandbox Code Playgroud)

c++ c++11 clang++

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

停止在 Octave 中重叠数字

有没有一种简单的方法可以让多个图形在显示器上均匀分布而无需手动调整?

我尝试使用autoArrangeFigures Matlab 社区函数,但运气不佳。首先,我遇到了各种脚本错误,一旦解决,它就无法阻止 Linux(pop-os)环境中的重叠数字。

在此输入图像描述

octave figure

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

CPU速度和内存的限制是否阻止我们创建AI系统?

许多技术乐观主义者说,在15年内,计算机的速度将与人类大脑的速度相媲美.这就是为什么他们认为计算机将达到与人类相同的智能水平.

如果摩尔定律成立,那么每18个月我们应该期望CPU速度加倍.15年是180个月.所以,我们将翻倍10倍.这意味着15年后计算机将比现在快1024倍.

但速度问题的原因是什么?如果是这样的话,我们现在就可以建立一个人工智能系统,它只会比15年慢1024倍.这意味着要回答一个问题,它需要1024秒(17分钟)而不是可接受的1秒.但我们现在有强大(但很慢)的AI系统吗?我想不是.即使现在(2015年)我们给系统1小时而不是17分钟,或1天,或1个月甚至1年,它仍然无法回答用自然语言表达的复杂问题.所以,速度不是导致问题的因素.

这意味着在15年内我们的情报不会比现在快1024(因为我们没有情报).相反,我们的"愚蠢"将比现在快1024倍.

nlp artificial-intelligence cpu-speed

4
推荐指数
1
解决办法
294
查看次数

你什么时候应该使用std :: thread :: joinable?

关于std :: thread :: joinable的网站cppreference中陈述了:

检查线程对象是否标识了活动的执行线程.具体来说,如果get_id()!= std :: thread :: id(),则返回true.因此默认构造的线程不可连接.已完成执行代码但尚未加入的线程仍被视为活动执行线程,因此可以连接.

关于std :: thread :: join文档的内容如下:

错误条件

resource_deadlock_would_occur如果this-> get_id()== std :: this_thread :: get_id()(检测到死锁)

这种方法的唯一目的是检测这种情况吗?我们目前肆无忌惮地只调用thread-> join而没有可连接的包装器,这种方法有什么危险?

c++ multithreading c++11

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

如何在页面刷新时重置路由器?

如何在页面刷新时强制导航到“/splash”路线?

如果我发现自己在 '/discover' 并刷新页面,它会保留在那里,但是我更希望应用程序重新从头开始 (/splash)。

const appRoutes: Routes = [
  { path: '', redirectTo: '/splash', pathMatch: 'full' },   
  { path: 'splash'             , component: SplashComponent        },
  { path: 'discover'           , component: DiscoverComponent      },
  { path: 'broadcast'          , component: BroadcastComponent     },
  { path: 'notifications'      , component: NotificationsComponent },
  { path: 'notifications/:key' , component: NotificationComponent  }
];

export const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes);
Run Code Online (Sandbox Code Playgroud)

我试图router.navigate在我的父 AppComponent 的OnInit&OnDestroy方法中进行调用,但它似乎被忽略了。

ngOnInit( ) : void {
    this.router.navigate(['splash']); 
}
Run Code Online (Sandbox Code Playgroud)

我还尝试OnDestroy在路由器本身的方法中放置导航调用。

angular2-routing angular

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

Android WebView localStorage

我正在尝试在Android WebView(Webkit,ChromeClient)中使用HTML5 localStorage示例.但是我没有运气.一切都来自手机浏览器,而不是WebView.

活动:

public class BrowserActivity extends Activity {
    @Override
    public final void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        WebView browser = (WebView) findViewById(R.id.webView);

        browser.setHapticFeedbackEnabled(true);        
        browser.getSettings().setJavaScriptEnabled(true);
        browser.getSettings().setSavePassword(false);

        browser.getSettings().setDatabaseEnabled(true);
        browser.getSettings().setDomStorageEnabled(true);
        browser.getSettings().setDatabasePath("/data/data/" + browser.getContext().getPackageName() + "/databases/");

        browser.loadUrl("http://my.app.com:10099");
    }
}
Run Code Online (Sandbox Code Playgroud)

Manifiest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="RestrictedBrowser"
          android:versionCode="1"
          android:versionName="1.0">
    <uses-sdk android:minSdkVersion="16"/>
    <application android:label="@string/app_name">
        <activity android:name="RestrictedBrowser.BrowserActivity"
                  android:label="@string/app_name"
                  android:theme="@android:style/Theme.Black.NoTitleBar"
                  android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
</manifest>
Run Code Online (Sandbox Code Playgroud)

错误

WARN/System.err(3961):android.database.sqlite.SQLiteConstraintException:列packagename不唯一(代码19)07-12 13:57:43.425:WARN/System.err(3961):at android.database.sqlite .SQLiteConnection.nativeExecuteForChangedRowCount(Native Method)07-12 13:57:43.425:WARN/System.err(3961):at android.database.sqlite.SQLiteConnection.executeForChangedRowCount(SQLiteConnection.java:857)WARN/System.err(3961) ):在android.database.sqlite.SQLiteSession.executeForChangedRowCount(SQLiteSession.java:754)WARN/System.err(3961):在android.database.sqlite.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:64)WARN/System.err …

android webkit webview local-storage webchromeclient

1
推荐指数
1
解决办法
9442
查看次数