I should look more through before starting to say stuff. So most of the stuff I mentioned is moot because it was moved to a different place that I was not aware of.
So Matt as Xiang mentioned the ARCHCXXFLAGS line should be enough. Importend is the define of __NuttX__ because it enables the necessary options for libcpp to compile. regards Marc Rosen ZeitControl Cardsystems GmbH Siedlerweg 39 D-32429 Minden Tel. ++49 (0)571 50 52 222 Fax. ++49 (0)571 50 52 299 E-Mail ma...@zeitcontrol.de Am 12.08.2020 um 08:32 schrieb Marc Rosen: > Hi, > > i did a curiosity check on this. > No Make.defs for STM32 boards on master from some what yesterday evening > (my localtime) has any include > definitions for c++. > > So to help Matt. the following is from my current config add this to > your Make.defs in your /nuttx/nuttx folder: > > ARCHINCLUDESXX += ${shell $(INCDIR) -s "$(CC)" $(TOPDIR)$(DELIM)include} > ARCHINCLUDESXX += ${shell $(INCDIR) -s "$(CC)" > $(TOPDIR)$(DELIM)include$(DELIM)cxx} > ARCHINCLUDESXX += ${shell $(INCDIR) -s "$(CC)" > $(TOPDIR)$(DELIM)include$(DELIM)libcxx} > > ifeq ($(CONFIG_LIBCXX),y) > ARCHCXXFLAGS += -std=c++17 -D__NuttX__ -D_LIBCPP_BUILD_STATIC > > ifneq ($(CONFIG_CXX_EXCEPTION),y) > ARCHCXXFLAGS += -D_LIBCPP_NO_EXCEPTIONS > endif > > ifeq ($(CONFIG_LIBCXX_BUILD_LIBRARY),y) > ARCHCXXFLAGS += -D_LIBCPP_BUILDING_LIBARAY > endif > > endif > > regards > > Marc Rosen > > ZeitControl Cardsystems GmbH > Siedlerweg 39 > D-32429 Minden > Tel. ++49 (0)571 50 52 222 > Fax. ++49 (0)571 50 52 299 > E-Mail ma...@zeitcontrol.de > > Am 12.08.2020 um 08:07 schrieb Xiang Xiao: >> Do you have this in your boards/Make.defs: >> ARCHCXXFLAGS += -D__NuttX__ -nostdinc++ >> Since there are many complex setting to make C++ library work on NuttX, but >> this setting spread in different Make.defs, I plan to enhance the experience >> in the next couple weeks(actually, all is done in our internal development >> branch): >> 1.Centralize the setting to arch/Toolchain.defs, so all boards will support >> libc++/uClibc++ automatically. >> 2.Upgrade to the latest uClibc++(already upstream) and libc++ without the >> special NuttX hack >> 3.Modify Makefile to automatically download the package from the official >> release(uClibc++ already upstream) >> 4.Enable all deconfig related to uClibc++/libc++ in the daily build system >> >>> -----Original Message----- >>> From: Matt DeWall <mdew...@gmail.com> >>> Sent: Wednesday, August 12, 2020 10:53 AM >>> To: dev@nuttx.apache.org >>> Subject: cpp cxx help - No thread API >>> >>> Hi devs! I'm getting started on NuttX and love the project. Looking to >>> port my cpp project to NuttX. >>> >>> I'm having trouble compiling the CPP version of the hello world using the >>> existing documentation. I'm able to build nuttx just fine and >>> flash my device using the C version of Hello World. >>> >>> The error during CXX building is "No thread API" >>> >>> >>> *Background:* >>> >>> I'm following the (latest?) directions here: >>> >>> https://github.com/apache/incubator-nuttx/ >>> >>> I made my own docker image based on this Dockerfile which I understand >>> nuttx is using for some part of ci/cid/testing: >>> >>> https://github.com/apache/incubator-nuttx-testing/blob/master/docker/linux/Dockerfile >>> >>> Running the following commands: >>> >>> git clone https://github.com/apache/incubator-nuttx.git nuttx git clone >>> https://github.com/apache/incubator-nuttx-apps.git apps >>> >>> Then I configure for my own board (stm32f103rbt6) ./configure.sh >>> nucleo-f103rb/nsh >>> >>> After "make menuconfig" and configuring the C hello world app, I'm able to >>> build and flash my board and run "hello" just fine. >>> >>> This leads me to believe my toolchain is good to go. >>> >>> >>> *Installing libcxx:* >>> >>> So moving on the c++ docs found here: >>> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=139629545 >>> but they may be outdated? >>> >>> Running: >>> >>> git clone https://bitbucket.org/acassis/libcxx >>> cd libcxx >>> ./install /nuttx/nuttx >>> >>> "Installing LLVM/libcxx in the NuttX source treeInstallation succeeded" >>> >>> I skipped the other two lines in that guide because they seem to clone a >>> different and older nuttx clone from Alan's repo. >>> >>> >>> *Trying to implement c++:* >>> >>> Going over to make menuconfig and enabling the following options (and >>> whatever comes with them) >>> >>> Libary Routines->Have C++ Compiler >>> >>> Libary Routines->Build LLVM libc++ >>> >>> Applications->Hello World C++ example >>> >>> When I go to build I get a "No thread API"... >>> >>> make[2]: Entering directory '/nuttx/apps/examples/helloxx'In file included >>> from /nuttx/nuttx/include/libcxx/cstdio:99,from >>> ./helloxx_main.cxx:42:/nuttx/nuttx/include/libcxx/__config:845:4: error: >>> #error "No thread API"845 | # error "No thread API" >>> >>> I've only seen a 3 year old post where some person was using their own >>> toolchain, so I'm not clear on how to proceed. >>> >>> I think I need to include some extra things in my Make.defs but I'm usually >>> working at a higher layer, I'm a medium-level linux person >>> and have next to zero experience developing c/c++ apps on linux, but I"ve >>> written plenty of apps on Windows. >>> >>> Really appreciate any help or insight you can provide, thanks! >>> >>> Matt >
signature.asc
Description: OpenPGP digital signature