It looks like Ami helped you out (for the list: the problem was C++ name mangling).
One way to have diagnosed this is to compare the symbols needed by your example object against the symbols exported by your linenoise object.
Try temporarily undoing your 'extern C' bit to produce the error again, then run these commands:
$ nm out/Default/obj/linenoise.linenoise.o | grep linenoise
=> should produce ouput including something like this:
0000000000001b36 T linenoise
$ nm out/Default/obj/example_cpp.example_cpp.o | grep linenoise
=> should produce ouput including something like this:
U _Z9linenoisePKc
Then try running "c++filt" and pasting the second one in:
$ c++filt
U _Z9linenoisePKc
It will print
which is the unmangled name (and the one printed in your error message).