0
巨大な量の投稿があることは知っていますが、その多くを使っています。C ClionのC++にリンクしているコードが動作していない
いくつかの.hファイルと.cファイルをC++ファイルに含める必要があります。アーキテクチャx86_64のため
未定義のシンボル: 「_fooFct」から参照:それはそれがfoo.hファイルに私をリダイレクトしますが、最終的に、それは次のようなメッセージでの作業ではないですCLionでメソッドにクリック
main.cpp.oで _main LD:
void fooFct();
foo.hという記号(S)アーキテクチャx86_64の
が見つかりません
foo.cの
void fooFct(){
/* do some stuff here */
}
main.cppに
#include <iostream>
extern "C"
{
#include "clibraryFolder/header/foo.h"
}
int main() {
fooFct();
return 0;
}
CMakeLists.txt
cmake_minimum_required(VERSION 3.6)
project(newcsample)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES main.cpp)
add_executable(newcsample ${SOURCE_FILES})
しかし、私はCファイルをインクルードする必要はありませんCMakeFiles.txtに保存します。これを行う別の方法は、CMakeFilesを編集する方法ですか?
あなたの 'CMakeLists.txt'ファイルはどのように見えますか?ソースリストに 'foo.c'をリストしていますか? –
あなたはfooFct()関数を宣言していますが、その定義にはリンクしていません。後者はfoo.cのために作成されたオブジェクトファイル内にあるはずです。 –
あなたは 'gcc -c Cfile.c'、' gcc -shared -o libCfile.so cFile.o'、 'C++ -L/somehwere -Wall main.cpp -o main -lCfile'のようなものを意味していますか?いいえ、私はそれをCLionによって完全に手に入れたいと思っていました。それとも可能ではありませんか? – flyOWX