いつの間にかgccが標準ライブラリは自動でリンクするようになってた

さっきcmakeの使い方を覚えている最中に、cmakeでサーチパスとかリンクするライブラリの追加をどうするかを調べる為に、サーチパスとライブラリの追加設定が必要な小さなコード書こうということでsqrtとか書いたんですけど、今やmathとかの標準ライブラリは自動でリンクされるっていうので、なんか無いかなんか無いかってことで、そうだlibxmlがあったと思ったけど使い方覚えてなくて、cmakeの為のサンプルを書くのに1hもかかったので、これからC++で上記の条件にあてはまるコードを要求された時に、にやりとしながらこのコードを出そうという事でエントリ。

#include 
#include 

using namespace std;

int main() {
    const char* xml = "pythonc++";
    xmlDocPtr doc = xmlParseMemory(xml, strlen(xml));
    if (doc) {
	xmlNodePtr cur = xmlDocGetRootElement(doc);
	do {
	    if (strcmp((char*)cur->name, "doc") == 0) {
		cur = cur->children;
	    }
	    else if (strcmp((char*)cur->name, "lang") == 0) {
		cout < < cur->name < < ":" << cur->children->content < < endl;
		cur = cur->next;
	    }
	} while (cur);
	xmlFreeDoc(doc);
    }
    return 0;
}

ちなみに上記を処理するCMakeFileLists.txtは以下になります。

CMAKE_MINIMUM_REQUIRED(VERSION 2.6)

PROJECT(project2)

INCLUDE_DIRECTORIES(/usr/include/libxml2)
ADD_DEFINITIONS(-g -O2 -Wall)

ADD_EXECUTABLE(proj2 main.cpp)
TARGET_LINK_LIBRARIES(proj2 xml2)

こんな事に時間取られてる場合じゃないんですけど!

Leave a Reply

Your email address will not be published. Required fields are marked *