Skip to content

cpp_source() fails if there are hyphens in the filename #248

@paleolimbot

Description

@paleolimbot

I imagine this isn't the intended behaviour but also has a very easy workaround (don't use hyphens in a C++ source filename).

temp <- tempfile(fileext = "contains-hyphen.cpp")
write("
#include <cpp11.hpp>

[[cpp11::register]]
void some_function() {}      
", temp)

cpp11::cpp_source(temp)
#> /private/var/folders/gt/l87wjg8s7312zs9s7c1fgs900000gn/T/Rtmp9b1IjL/file1045918f3e435/src/cpp11.cpp:5:43: error: expected ';' after top level declarator
#> extern "C" SEXP _file1045977566e56contains-hyphen_some_function() {
#>                                           ^
#>                                           ;
#> 1 error generated.
#> make: *** [/private/var/folders/gt/l87wjg8s7312zs9s7c1fgs900000gn/T/Rtmp9b1IjL/file1045918f3e435/src/cpp11.o] Error 1
#> make: *** Waiting for unfinished jobs....
#> Error: Compilation failed.
some_function()
#> Error in some_function(): could not find function "some_function"

Created on 2021-11-10 by the reprex package (v2.0.1)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions